|
18338
|
792
|
26
|
2026-05-11T11:12:13.785841+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778497933785_m1.jpg...
|
PhpStorm
|
faVsco.js – Client.php
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
iTerm2ShellEditViewSessionScriptsProfilesWindowHel iTerm2ShellEditViewSessionScriptsProfilesWindowHelp(ahlPreparation for Refi... in 48 m100% <78• Mon 11 May 14:12:13181DEV (docker)-zshDOCKERcompiledeventsroutesviews181DEV (docker)$2APP (-zsh)*3Jiminny-worker-processing-2:jiminny-worker-processing-2_00: stoppedjiminny-worker-processing-3:jiminny-worker-processing-3_00: stoppedjiminny-worker-processing-4:jiminny-worker-processing-4_00: stoppedjiminny-worker-processing-delayed: jiminny-worker-processing-delayed_00: stoppedworker-analytics:worker-analytics_00: stoppedjiminny-worker-processing-5:jiminny-worker-processing-5_00: stoppedworker-crm-update:worker-crm-update_00: stoppedworker-download:worker-download_00:stoppedworker-nudges:worker-nudges_00:stoppedjiminny-worker-processing-1:jiminny-worker-processing-1_00: stoppedworker-emails:worker-emails_00: stoppedworker:worker_00: stoppedworker-audio:worker-audio_00: stoppedworker-calendar:worker-calendar_00:stoppedworker-conferences:worker-conferences_00: stoppedworker-crm-sync:worker-crm-sync_00:stoppedworker-es-update:worker-es-update_00: stoppedartisan-schedule:artisan-schedule_00: stoppedartisan-schedule:artisan-schedule_00: startedjiminny-worker-processing-1:jiminny-worker-processing-1_00: startedjiminny-worker-processing-2:jiminny-worker-processing-2_00: startedsing-1 0; startejiminny-worker-processing-3:jiminny-worker-processing-3_00: startedjiminny-worker-processing-4:jiminny-worker-processing-4_00: startedjiminny-worker-processing-5:jiminny-worker-processing-5_00: startedjiminny-worker-processing-delayed: jiminny-worker-processing-delayed_00: startedworker:worker_00: startedworker-analytics:worker-analytics_00: startedworker-audio:worker-audio_00: startedworker-calendar:worker-calendar_00:startedworker-conferences:worker-conferences_00: startedworker-crm-sync:worker-crm-sync_00: startedworker-crm-update:worker-crm-update_00: startedworker-download:worker-download_00: startedworker-emails:worker-emails_00: startedworker-es-update:worker-es-update_00:startedworker-nudges:worker-nudges_00: startedroot@docker_lamp_1:/home/jiminny#php artisan jiminny:debugDispatching 100 MatchActivityCrmDatajobs (portal=2)Done.Watch logs and runjiminny:debug observeRateLimit to inspect cachestate.root@docker_lamp_1:/home/jiminny# ]84-zshX5screenpipe"O ₴62.01ms DONE1.32ms DONE1.13ms DONE15.28ms DONE-zsh+DEV...
|
NULL
|
7679717790808982792
|
NULL
|
click
|
ocr
|
NULL
|
iTerm2ShellEditViewSessionScriptsProfilesWindowHel iTerm2ShellEditViewSessionScriptsProfilesWindowHelp(ahlPreparation for Refi... in 48 m100% <78• Mon 11 May 14:12:13181DEV (docker)-zshDOCKERcompiledeventsroutesviews181DEV (docker)$2APP (-zsh)*3Jiminny-worker-processing-2:jiminny-worker-processing-2_00: stoppedjiminny-worker-processing-3:jiminny-worker-processing-3_00: stoppedjiminny-worker-processing-4:jiminny-worker-processing-4_00: stoppedjiminny-worker-processing-delayed: jiminny-worker-processing-delayed_00: stoppedworker-analytics:worker-analytics_00: stoppedjiminny-worker-processing-5:jiminny-worker-processing-5_00: stoppedworker-crm-update:worker-crm-update_00: stoppedworker-download:worker-download_00:stoppedworker-nudges:worker-nudges_00:stoppedjiminny-worker-processing-1:jiminny-worker-processing-1_00: stoppedworker-emails:worker-emails_00: stoppedworker:worker_00: stoppedworker-audio:worker-audio_00: stoppedworker-calendar:worker-calendar_00:stoppedworker-conferences:worker-conferences_00: stoppedworker-crm-sync:worker-crm-sync_00:stoppedworker-es-update:worker-es-update_00: stoppedartisan-schedule:artisan-schedule_00: stoppedartisan-schedule:artisan-schedule_00: startedjiminny-worker-processing-1:jiminny-worker-processing-1_00: startedjiminny-worker-processing-2:jiminny-worker-processing-2_00: startedsing-1 0; startejiminny-worker-processing-3:jiminny-worker-processing-3_00: startedjiminny-worker-processing-4:jiminny-worker-processing-4_00: startedjiminny-worker-processing-5:jiminny-worker-processing-5_00: startedjiminny-worker-processing-delayed: jiminny-worker-processing-delayed_00: startedworker:worker_00: startedworker-analytics:worker-analytics_00: startedworker-audio:worker-audio_00: startedworker-calendar:worker-calendar_00:startedworker-conferences:worker-conferences_00: startedworker-crm-sync:worker-crm-sync_00: startedworker-crm-update:worker-crm-update_00: startedworker-download:worker-download_00: startedworker-emails:worker-emails_00: startedworker-es-update:worker-es-update_00:startedworker-nudges:worker-nudges_00: startedroot@docker_lamp_1:/home/jiminny#php artisan jiminny:debugDispatching 100 MatchActivityCrmDatajobs (portal=2)Done.Watch logs and runjiminny:debug observeRateLimit to inspect cachestate.root@docker_lamp_1:/home/jiminny# ]84-zshX5screenpipe"O ₴62.01ms DONE1.32ms DONE1.13ms DONE15.28ms DONE-zsh+DEV...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
18339
|
793
|
24
|
2026-05-11T11:12:13.741903+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778497933741_m2.jpg...
|
PhpStorm
|
faVsco.js – Client.php
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
PhostormVIewINavicarecodeFV faVsco.js%9 JY-20725-h PhostormVIewINavicarecodeFV faVsco.js%9 JY-20725-handle-HS-search-rate-limroledey© BatchSyncCollectore balchsynckealsse© ClosedDealStagesS © RateLimitExcepDealrielasservice.gc)Decorateacuivilv.or© FieldDefinitions.phpC) FieldT vpeconvertee Hubspotclientinterc) Hubspot lokenmanC) PavloadBuilder.phpC) Remotecrmobiectr© ResponseNormalizec) Service.onr© SyncFieldAction.phC) SvncRelatedActivitC) WebhookSvncBatclv MintearationAor> O AccessorsConfigD DTO> M SiltersD JobsD ProspectSearchStra102W sevice lraits© DataClient.php© DecorateActivity.pr©LocalSearch.phpu LocalSearchintertac© RemoteSearch.phpc) Service.phpv _ Listeners© ConvertLeadActivitc) PurceLookuocache› D Metadata> MiarationPipedrivev Salesforce• D FieldsM OnnortunitvMatcheOpportunitySyncSti117M ProsneetSearchStr.ServiceTraitsC) Client nhr©DecorateActivity.pt. Delete@biectsTrait121© FieldDefinitions.php123© PayloadBuilder.php© Profile.php© QueryBuilder.phpTests passed: 13 (today 13:02)© CachedCrmServiceDecorator.phpclass Cllent extends Baseclient 1mpLements Hubspotclientintertaceorivate tunction executerequestcallable saoivauueltry{return $apiCall();} catch (Throwable $e) €if ($this->isHubspotRateLimit($e)) {Snotnvifton - Sthic-snancoPotnvdfton/Con•Redis: :setex($cacheKey, $retryAfter, (string) $retryAfter);$this->log->warning('[Hubspot] Received 429 from API', ['team 1d'= sth1s->cont10->team 10cont10 1d'= $this->config->getId(),"retry after = sretryAtter=> $this->parseMessage|($e),Cascade I Tl= se->qetressaceorCommand 21: 'Hubspot returned 429'. SretrvAfter. Se):throw $e;1 usageprivate function getRateLimitCacheKey(): stringreturn sprintf( format: 'hubspot:ratelimit:portal:%d', $this->config->getId());public function isHubspotRateLimit(Throwable $e): boolif (Se instanceof BadRequestII $e instanceof DealApiExceptionII $e instanceof ContactApiExceptionII Se instanceof CompanyApiExceptionIl Se instanceofbuzzlehtro exceotzon request-xceptzonreturn (ant) Se->qetcode0 === 429%HubSpot/Service.phpProviderkateLimiter.ong=| A2 A67 23 ^1111111$0Preparation for Refi... in 48m100% 1Mon 11 May 14:12:13A console [PROD]A console (EU]A console [STAGING]s\Command: :run Memory usage before starting command {"comEntitles Startind Es undate worken "oid":12650."workerlid"*"s\Command: :run Memory usage for command {"cStarting CRM data matching {"activity":615te single target {"target": "activities"rch ] Entity added to Redis list {"entiParticipants old state ("activity":6150Fetching token {"socialAccountId":1499,Token retrieved {"socialAccountId" :1499Generating access token. {"mode": "legagration owner matched as CRM Owner {"crmiss, calling the API {"identifier_typech contact {"email": "nikolay.nikolov@jicurned empty result, caching che missfter header or known message, using dei29 from API {"team_id":2, "config_id":2,secondly Limit.". errorivoe":"KAId", "trace_id":"7954a095-b2fb-4c22-bbb6-Rate limit caught. releasina 100 withStarting CRM data matching {"activity":te single target ""target": "activities'rch ] Entity added to Redis list f"entiParticinants old state "'activity":6144Fetching token {"socialAccountId":1499,Token retrieved "socialAccountId"• 1499aration owner matched as CRM Owner "cn/ Local search hit ("identifier_type":"empty resultnd APt calle +ry neyt1 Rate limit caught, releasing job withStantina CRM data matchina Siactivity".te single target {"target":"activities"rch ] Entity added to Redis list {"ent:Participants old state ("activity":6143Fetching token {"socialAccountId":1499,Token retrieved {"socialAccountId" : 1499Generating access token. {"mode":"legagration owner matched as CRM Owner ("cr/ local search hit ("identifier_type":"empty result - no APT calls. try next matching method {";1 Rate limit caught.releasing job withStarting CRM data matching {"activity",te single target ""target": "activitles'rch ] Entity added to Redis list {"entiParticinants old state {"activitv".614.Fetchind token -"socialAccountld":1499Token retrieved {"socialAccountId" :1499Generatina access token. "mode"."leoaaration owner matched as CRM Owner ""objects/contact/search' resulte...
|
NULL
|
-697119328602921120
|
NULL
|
click
|
ocr
|
NULL
|
PhostormVIewINavicarecodeFV faVsco.js%9 JY-20725-h PhostormVIewINavicarecodeFV faVsco.js%9 JY-20725-handle-HS-search-rate-limroledey© BatchSyncCollectore balchsynckealsse© ClosedDealStagesS © RateLimitExcepDealrielasservice.gc)Decorateacuivilv.or© FieldDefinitions.phpC) FieldT vpeconvertee Hubspotclientinterc) Hubspot lokenmanC) PavloadBuilder.phpC) Remotecrmobiectr© ResponseNormalizec) Service.onr© SyncFieldAction.phC) SvncRelatedActivitC) WebhookSvncBatclv MintearationAor> O AccessorsConfigD DTO> M SiltersD JobsD ProspectSearchStra102W sevice lraits© DataClient.php© DecorateActivity.pr©LocalSearch.phpu LocalSearchintertac© RemoteSearch.phpc) Service.phpv _ Listeners© ConvertLeadActivitc) PurceLookuocache› D Metadata> MiarationPipedrivev Salesforce• D FieldsM OnnortunitvMatcheOpportunitySyncSti117M ProsneetSearchStr.ServiceTraitsC) Client nhr©DecorateActivity.pt. Delete@biectsTrait121© FieldDefinitions.php123© PayloadBuilder.php© Profile.php© QueryBuilder.phpTests passed: 13 (today 13:02)© CachedCrmServiceDecorator.phpclass Cllent extends Baseclient 1mpLements Hubspotclientintertaceorivate tunction executerequestcallable saoivauueltry{return $apiCall();} catch (Throwable $e) €if ($this->isHubspotRateLimit($e)) {Snotnvifton - Sthic-snancoPotnvdfton/Con•Redis: :setex($cacheKey, $retryAfter, (string) $retryAfter);$this->log->warning('[Hubspot] Received 429 from API', ['team 1d'= sth1s->cont10->team 10cont10 1d'= $this->config->getId(),"retry after = sretryAtter=> $this->parseMessage|($e),Cascade I Tl= se->qetressaceorCommand 21: 'Hubspot returned 429'. SretrvAfter. Se):throw $e;1 usageprivate function getRateLimitCacheKey(): stringreturn sprintf( format: 'hubspot:ratelimit:portal:%d', $this->config->getId());public function isHubspotRateLimit(Throwable $e): boolif (Se instanceof BadRequestII $e instanceof DealApiExceptionII $e instanceof ContactApiExceptionII Se instanceof CompanyApiExceptionIl Se instanceofbuzzlehtro exceotzon request-xceptzonreturn (ant) Se->qetcode0 === 429%HubSpot/Service.phpProviderkateLimiter.ong=| A2 A67 23 ^1111111$0Preparation for Refi... in 48m100% 1Mon 11 May 14:12:13A console [PROD]A console (EU]A console [STAGING]s\Command: :run Memory usage before starting command {"comEntitles Startind Es undate worken "oid":12650."workerlid"*"s\Command: :run Memory usage for command {"cStarting CRM data matching {"activity":615te single target {"target": "activities"rch ] Entity added to Redis list {"entiParticipants old state ("activity":6150Fetching token {"socialAccountId":1499,Token retrieved {"socialAccountId" :1499Generating access token. {"mode": "legagration owner matched as CRM Owner {"crmiss, calling the API {"identifier_typech contact {"email": "nikolay.nikolov@jicurned empty result, caching che missfter header or known message, using dei29 from API {"team_id":2, "config_id":2,secondly Limit.". errorivoe":"KAId", "trace_id":"7954a095-b2fb-4c22-bbb6-Rate limit caught. releasina 100 withStarting CRM data matching {"activity":te single target ""target": "activities'rch ] Entity added to Redis list f"entiParticinants old state "'activity":6144Fetching token {"socialAccountId":1499,Token retrieved "socialAccountId"• 1499aration owner matched as CRM Owner "cn/ Local search hit ("identifier_type":"empty resultnd APt calle +ry neyt1 Rate limit caught, releasing job withStantina CRM data matchina Siactivity".te single target {"target":"activities"rch ] Entity added to Redis list {"ent:Participants old state ("activity":6143Fetching token {"socialAccountId":1499,Token retrieved {"socialAccountId" : 1499Generating access token. {"mode":"legagration owner matched as CRM Owner ("cr/ local search hit ("identifier_type":"empty result - no APT calls. try next matching method {";1 Rate limit caught.releasing job withStarting CRM data matching {"activity",te single target ""target": "activitles'rch ] Entity added to Redis list {"entiParticinants old state {"activitv".614.Fetchind token -"socialAccountld":1499Token retrieved {"socialAccountId" :1499Generatina access token. "mode"."leoaaration owner matched as CRM Owner ""objects/contact/search' resulte...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
18340
|
793
|
25
|
2026-05-11T11:12:18.767079+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778497938767_m2.jpg...
|
PhpStorm
|
faVsco.js – Client.php
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
PhostormVIewINavicareCodeWindowFV faVsco.js%9 JY-2 PhostormVIewINavicareCodeWindowFV faVsco.js%9 JY-20725-handle-HS-search-rate-limiroledey© TrackAutomatedReportGeneratedEvent.php© BatchSyncCollectore balchsynckealsse* SyncCrmEntities Trait.php© CachedCrmServiceDecorator.php© ClosedDealStagesS © RateLimitException.phpDealrielasservice.gc)Decorateacuivilv.or© FieldDefinitions.phpC) FieldT vpeconverteclass Cllent extends Baseclient 1mpLements Hubspotclientintertacee Hubspotclientinterc) Hubspot lokenman© PayloadBuilder.phpC) Remotecrmobiectr© ResponseNormalizec) Service.onr© SyncFieldAction.phC) SvncRelatedActivitC) WebhookSvncBatclv MintearationAor> O AccessorsConfigD DTO> M SiltersD Jobs> D ProspectSearchStra102W service lralts© DataClient.php© DecorateActivity.prc Localsearch.oneu LocalSearchintertac© RemoteSearch.phpc) Service.phpv W Listenersc) ConvertLeadActivitc) PurceLookuocache> Metadata> MiarationO Pipedrivev Salesforce• D FieldsM OnnortunitvMatche116OpportunitySyncSti117M ProsneetSearchStr.Service TraitsC) Client nhr©DecorateActivity.pt. Delete@biectsTrait121© FieldDefinitions.php123© PayloadBuilder.php© Profile.php© QueryBuilder.phpTests passed: 13 (today 13:02)orivate tunction executerequestcallable saoivauueltrytreturn $apiCall();} catch (Throwable $e) €if ($this->isHubspotRateLimit($e)) {SretryAfter = $this->parseRetryAfter(Se);Redis: :setex($cacheKey, $retryAfter, (string) $retryAfter);$this->log->warning('[Hubspot] Received 429 from API', ['team 1d'= sth1s->cont10->team 10cont10 1d'= $this->config->getId(),"retry after = sretryatter,= Se->qethessaqeoithrow new RatelimitExcention message:'Hubspot returned 429', SretryAfter, $e);throw $e;1 usagenrivate function getRateLimitCacheKevo• strinoneturn sorintfd formata'hubspot:ratelimit:portal:%d', $this->config->getId());Tusagepublic function isHubspotRateLimit(Throwable Se): boolif ($e instanceof BadRequestII $e instanceof DealApiExceptionII $e instanceof ContactApiExceptionIl Se instanceof CompanyApiExceptionI1 Se instanceof \GuzzleHttp\Exception\RequestExceptionreturn (int) $e->getCode() === 429;return false:HubSpot/Service.php| A2 A67 X3 A VMII 1I II IIII1 111TII$0halPreparation for Refi... in 48m100% 18• Mon 11 May 14:12:18&console [pRODlA console (EU]A console [STAGING]E laravel.log xs\Command: :run Memory usage before starting command {"comEntitles Startind Es undate worker "oid":12650."workenlid"*"s\Command: :run Memory usage for command {"cStarting CRM data matching {"activity":615te single target {"target": "activities"rch ] Entity added to Redis list {"entiParticipants old state {"activity":6150Fetching token {"socialAccountId":1499,Token retrieved {"socialAccountId" :1499Generating access token. {"mode": "Legagration owner matched as CRM Owner {"crmiss, calling the API {"identifier_typech contact {"email": "nikolay.nikolov@jiturned empty result, caching the miss vfter header or known message, using dei29 from API {"team_id":2, "config_id":2,secondly Limit.\", \"errorType\":\ "RATEd", "trace_id":"7954a095-b2fb-4c22-bbb6-Rate limit caught. releasina 100 withStarting CRM data matching f"activity":te single target ""target": "activities'rch ] Entity added to Redis list f"entiParticinants old state "'activity":6144Fetching token {"socialAccountId":1499,Token retrieved "socialAccountId"• 1499aration owner matched as CRM Owner "cn/ local search hit {"identifier_type":"empty resultnd APt calle +ry neyt1 Rate limit caught, releasing job withStarting CRM data matching {"activity":te single target {"target":"activities"rch ] Entity added to Redis list {"entiParticipants old state ("activity":6143Fetching token {"socialAccountId":1499,Token retrieved {"socialAccountId" : 1499Generating access token. ("mode": "Legagration owner matched as CRM Owner ("cr/ local search hit ("identifier_type":"empty result - no APT calls. try next matching method {";1 Doto 14nd+ couch+releasing job withStarting CRM data matching {"activity",te single target {"target"."activities'rch ] Entity added to Redis list {"entiParticipants old state {"activity":6143Fetching token {"socialAccountId"•1499)Token retrieved {"socialAccountId" :1499Generatina access token. "mode"."Leo:aration owner matched as CRM Owner <"cbjects/contact/search' resulte...
|
NULL
|
-6324609191441562431
|
NULL
|
click
|
ocr
|
NULL
|
PhostormVIewINavicareCodeWindowFV faVsco.js%9 JY-2 PhostormVIewINavicareCodeWindowFV faVsco.js%9 JY-20725-handle-HS-search-rate-limiroledey© TrackAutomatedReportGeneratedEvent.php© BatchSyncCollectore balchsynckealsse* SyncCrmEntities Trait.php© CachedCrmServiceDecorator.php© ClosedDealStagesS © RateLimitException.phpDealrielasservice.gc)Decorateacuivilv.or© FieldDefinitions.phpC) FieldT vpeconverteclass Cllent extends Baseclient 1mpLements Hubspotclientintertacee Hubspotclientinterc) Hubspot lokenman© PayloadBuilder.phpC) Remotecrmobiectr© ResponseNormalizec) Service.onr© SyncFieldAction.phC) SvncRelatedActivitC) WebhookSvncBatclv MintearationAor> O AccessorsConfigD DTO> M SiltersD Jobs> D ProspectSearchStra102W service lralts© DataClient.php© DecorateActivity.prc Localsearch.oneu LocalSearchintertac© RemoteSearch.phpc) Service.phpv W Listenersc) ConvertLeadActivitc) PurceLookuocache> Metadata> MiarationO Pipedrivev Salesforce• D FieldsM OnnortunitvMatche116OpportunitySyncSti117M ProsneetSearchStr.Service TraitsC) Client nhr©DecorateActivity.pt. Delete@biectsTrait121© FieldDefinitions.php123© PayloadBuilder.php© Profile.php© QueryBuilder.phpTests passed: 13 (today 13:02)orivate tunction executerequestcallable saoivauueltrytreturn $apiCall();} catch (Throwable $e) €if ($this->isHubspotRateLimit($e)) {SretryAfter = $this->parseRetryAfter(Se);Redis: :setex($cacheKey, $retryAfter, (string) $retryAfter);$this->log->warning('[Hubspot] Received 429 from API', ['team 1d'= sth1s->cont10->team 10cont10 1d'= $this->config->getId(),"retry after = sretryatter,= Se->qethessaqeoithrow new RatelimitExcention message:'Hubspot returned 429', SretryAfter, $e);throw $e;1 usagenrivate function getRateLimitCacheKevo• strinoneturn sorintfd formata'hubspot:ratelimit:portal:%d', $this->config->getId());Tusagepublic function isHubspotRateLimit(Throwable Se): boolif ($e instanceof BadRequestII $e instanceof DealApiExceptionII $e instanceof ContactApiExceptionIl Se instanceof CompanyApiExceptionI1 Se instanceof \GuzzleHttp\Exception\RequestExceptionreturn (int) $e->getCode() === 429;return false:HubSpot/Service.php| A2 A67 X3 A VMII 1I II IIII1 111TII$0halPreparation for Refi... in 48m100% 18• Mon 11 May 14:12:18&console [pRODlA console (EU]A console [STAGING]E laravel.log xs\Command: :run Memory usage before starting command {"comEntitles Startind Es undate worker "oid":12650."workenlid"*"s\Command: :run Memory usage for command {"cStarting CRM data matching {"activity":615te single target {"target": "activities"rch ] Entity added to Redis list {"entiParticipants old state {"activity":6150Fetching token {"socialAccountId":1499,Token retrieved {"socialAccountId" :1499Generating access token. {"mode": "Legagration owner matched as CRM Owner {"crmiss, calling the API {"identifier_typech contact {"email": "nikolay.nikolov@jiturned empty result, caching the miss vfter header or known message, using dei29 from API {"team_id":2, "config_id":2,secondly Limit.\", \"errorType\":\ "RATEd", "trace_id":"7954a095-b2fb-4c22-bbb6-Rate limit caught. releasina 100 withStarting CRM data matching f"activity":te single target ""target": "activities'rch ] Entity added to Redis list f"entiParticinants old state "'activity":6144Fetching token {"socialAccountId":1499,Token retrieved "socialAccountId"• 1499aration owner matched as CRM Owner "cn/ local search hit {"identifier_type":"empty resultnd APt calle +ry neyt1 Rate limit caught, releasing job withStarting CRM data matching {"activity":te single target {"target":"activities"rch ] Entity added to Redis list {"entiParticipants old state ("activity":6143Fetching token {"socialAccountId":1499,Token retrieved {"socialAccountId" : 1499Generating access token. ("mode": "Legagration owner matched as CRM Owner ("cr/ local search hit ("identifier_type":"empty result - no APT calls. try next matching method {";1 Doto 14nd+ couch+releasing job withStarting CRM data matching {"activity",te single target {"target"."activities'rch ] Entity added to Redis list {"entiParticipants old state {"activity":6143Fetching token {"socialAccountId"•1499)Token retrieved {"socialAccountId" :1499Generatina access token. "mode"."Leo:aration owner matched as CRM Owner <"cbjects/contact/search' resulte...
|
18339
|
NULL
|
NULL
|
NULL
|
|
18341
|
792
|
27
|
2026-05-11T11:12:18.739230+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778497938739_m1.jpg...
|
PhpStorm
|
faVsco.js – Client.php
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
iTerm2ShellEditViewSessionScriptsProfilesWindowHel iTerm2ShellEditViewSessionScriptsProfilesWindowHelp(ahlPreparation for Refi... in 48 m100% <78• Mon 11 May 14:12:18181DEV (docker)-zshDOCKERcompiledeventsroutesviews₴81DEV (docker)$2APP (-zsh)*3Jiminny-worker-processing-2:jiminny-worker-processing-2_00: stoppedjiminny-worker-processing-3:jiminny-worker-processing-3_00: stoppedjiminny-worker-processing-4:jiminny-worker-processing-4_00: stoppedjiminny-worker-processing-delayed: jiminny-worker-processing-delayed_00: stoppedworker-analytics:worker-analytics_00: stoppedjiminny-worker-processing-5:jiminny-worker-processing-5_00: stoppedworker-crm-update:worker-crm-update_00: stoppedworker-download:worker-download_00:stoppedworker-nudges:worker-nudges_00:stoppedjiminny-worker-processing-1:jiminny-worker-processing-1_00: stoppedworker-emails:worker-emails_00: stoppedworker:worker_00: stoppedworker-audio:worker-audio_00: stoppedworker-calendar:worker-calendar_00:stoppedworker-conferences:worker-conferences_00: stoppedworker-crm-sync:worker-crm-sync_00:stoppedworker-es-update:worker-es-update_00: stoppedartisan-schedule:artisan-schedule_00: stoppedartisan-schedule:artisan-schedule_00: startedjiminny-worker-processing-1:jiminny-worker-processing-1_00: startedjiminny-worker-processing-2:jiminny-worker-processing-2_00: startedsing-1 0; startejiminny-worker-processing-3:jiminny-worker-processing-3_00: startedjiminny-worker-processing-4:jiminny-worker-processing-4_00: startedjiminny-worker-processing-5:jiminny-worker-processing-5_00: startedjiminny-worker-processing-delayed: jiminny-worker-processing-delayed_00: startedworker:worker_00: startedworker-analytics:worker-analytics_00: startedworker-audio:worker-audio_00: startedworker-calendar:worker-calendar_00:startedworker-conferences:worker-conferences_00: startedworker-crm-sync:worker-crm-sync_00: startedworker-crm-update:worker-crm-update_00: startedworker-download:worker-download_00: startedworker-emails:worker-emails_00: startedworker-es-update:worker-es-update_00:startedworker-nudges:worker-nudges_00: startedroot@docker_lamp_1:/home/jiminny#php artisan jiminny:debugDispatching 100 MatchActivityCrmDatajobs (portal=2)Done.Watch logs and runjiminny:debug observeRateLimit to inspect cachestate.root@docker_lamp_1:/home/jiminny# ]84-zshX5screenpipe"O ₴62.01ms DONE1.32ms DONE1.13ms DONE15.28ms DONE-zsh+DEV...
|
NULL
|
5343700727861454160
|
NULL
|
click
|
ocr
|
NULL
|
iTerm2ShellEditViewSessionScriptsProfilesWindowHel iTerm2ShellEditViewSessionScriptsProfilesWindowHelp(ahlPreparation for Refi... in 48 m100% <78• Mon 11 May 14:12:18181DEV (docker)-zshDOCKERcompiledeventsroutesviews₴81DEV (docker)$2APP (-zsh)*3Jiminny-worker-processing-2:jiminny-worker-processing-2_00: stoppedjiminny-worker-processing-3:jiminny-worker-processing-3_00: stoppedjiminny-worker-processing-4:jiminny-worker-processing-4_00: stoppedjiminny-worker-processing-delayed: jiminny-worker-processing-delayed_00: stoppedworker-analytics:worker-analytics_00: stoppedjiminny-worker-processing-5:jiminny-worker-processing-5_00: stoppedworker-crm-update:worker-crm-update_00: stoppedworker-download:worker-download_00:stoppedworker-nudges:worker-nudges_00:stoppedjiminny-worker-processing-1:jiminny-worker-processing-1_00: stoppedworker-emails:worker-emails_00: stoppedworker:worker_00: stoppedworker-audio:worker-audio_00: stoppedworker-calendar:worker-calendar_00:stoppedworker-conferences:worker-conferences_00: stoppedworker-crm-sync:worker-crm-sync_00:stoppedworker-es-update:worker-es-update_00: stoppedartisan-schedule:artisan-schedule_00: stoppedartisan-schedule:artisan-schedule_00: startedjiminny-worker-processing-1:jiminny-worker-processing-1_00: startedjiminny-worker-processing-2:jiminny-worker-processing-2_00: startedsing-1 0; startejiminny-worker-processing-3:jiminny-worker-processing-3_00: startedjiminny-worker-processing-4:jiminny-worker-processing-4_00: startedjiminny-worker-processing-5:jiminny-worker-processing-5_00: startedjiminny-worker-processing-delayed: jiminny-worker-processing-delayed_00: startedworker:worker_00: startedworker-analytics:worker-analytics_00: startedworker-audio:worker-audio_00: startedworker-calendar:worker-calendar_00:startedworker-conferences:worker-conferences_00: startedworker-crm-sync:worker-crm-sync_00: startedworker-crm-update:worker-crm-update_00: startedworker-download:worker-download_00: startedworker-emails:worker-emails_00: startedworker-es-update:worker-es-update_00:startedworker-nudges:worker-nudges_00: startedroot@docker_lamp_1:/home/jiminny#php artisan jiminny:debugDispatching 100 MatchActivityCrmDatajobs (portal=2)Done.Watch logs and runjiminny:debug observeRateLimit to inspect cachestate.root@docker_lamp_1:/home/jiminny# ]84-zshX5screenpipe"O ₴62.01ms DONE1.32ms DONE1.13ms DONE15.28ms DONE-zsh+DEV...
|
18338
|
NULL
|
NULL
|
NULL
|
|
18342
|
792
|
28
|
2026-05-11T11:12:22.863675+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778497942863_m1.jpg...
|
PhpStorm
|
faVsco.js – Client.php
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
iTerm2ShellEditViewSessionScriptsProfilesWindowHel iTerm2ShellEditViewSessionScriptsProfilesWindowHelp(ahlPreparation for Refi... in 48 m100% <78• Mon 11 May 14:12:22181DEV (docker)-zshDOCKERcompiledeventsroutesviews•₴1DEV (docker)$2APP (-zsh)*3Jiminny-worker-processing-2:jiminny-worker-processing-2_00: stoppedjiminny-worker-processing-3:jiminny-worker-processing-3_00: stoppedjiminny-worker-processing-4:jiminny-worker-processing-4_00: stoppedjiminny-worker-processing-delayed: jiminny-worker-processing-delayed_00: stoppedworker-analytics:worker-analytics_00: stoppedjiminny-worker-processing-5:jiminny-worker-processing-5_00: stoppedworker-crm-update:worker-crm-update_00: stoppedworker-download:worker-download_00:stoppedworker-nudges:worker-nudges_00:stoppedjiminny-worker-processing-1:jiminny-worker-processing-1_00: stoppedworker-emails:worker-emails_00: stoppedworker:worker_00: stoppedworker-audio:worker-audio_00: stoppedworker-calendar:worker-calendar_00:stoppedworker-conferences:worker-conferences_00: stoppedworker-crm-sync:worker-crm-sync_00:stoppedworker-es-update:worker-es-update_00: stoppedartisan-schedule:artisan-schedule_00: stoppedartisan-schedule:artisan-schedule_00: startedjiminny-worker-processing-1:jiminny-worker-processing-1_00: startedjiminny-worker-processing-2:jiminny-worker-processing-2_00: startedsing-1 0: startedjiminny-worker-processing-3:jiminny-worker-processing-3_00: startedjiminny-worker-processing-4:jiminny-worker-processing-4_00: startedjiminny-worker-processing-5:jiminny-worker-processing-5_00: startedjiminny-worker-processing-delayed: jiminny-worker-processing-delayed_00: startedworker:worker_00: startedworker-analytics:worker-analytics_00: startedworker-audio:worker-audio_00: startedworker-calendar:worker-calendar_00:startedworker-conferences:worker-conferences_00: startedworker-crm-sync:worker-crm-sync_00: startedworker-crm-update:worker-crm-update_00: startedworker-download:worker-download_00: startedworker-emails:worker-emails_00: startedworker-es-update:worker-es-update_00:startedworker-nudges:worker-nudges_00: startedroot@docker_lamp_1:/home/jiminny#php artisan jiminny:debugDispatching 100 MatchActivityCrmDatajobs (portal=2)Done.Watch logs and runjiminny:debug observeRateLimit to inspect cachestate.root@docker_lamp_1:/home/jiminny# ]84-zshX5screenpipe"O ₴62.01ms DONE1.32ms DONE1.13ms DONE15.28ms DONE-zsh+DEV...
|
NULL
|
1048676586980514719
|
NULL
|
click
|
ocr
|
NULL
|
iTerm2ShellEditViewSessionScriptsProfilesWindowHel iTerm2ShellEditViewSessionScriptsProfilesWindowHelp(ahlPreparation for Refi... in 48 m100% <78• Mon 11 May 14:12:22181DEV (docker)-zshDOCKERcompiledeventsroutesviews•₴1DEV (docker)$2APP (-zsh)*3Jiminny-worker-processing-2:jiminny-worker-processing-2_00: stoppedjiminny-worker-processing-3:jiminny-worker-processing-3_00: stoppedjiminny-worker-processing-4:jiminny-worker-processing-4_00: stoppedjiminny-worker-processing-delayed: jiminny-worker-processing-delayed_00: stoppedworker-analytics:worker-analytics_00: stoppedjiminny-worker-processing-5:jiminny-worker-processing-5_00: stoppedworker-crm-update:worker-crm-update_00: stoppedworker-download:worker-download_00:stoppedworker-nudges:worker-nudges_00:stoppedjiminny-worker-processing-1:jiminny-worker-processing-1_00: stoppedworker-emails:worker-emails_00: stoppedworker:worker_00: stoppedworker-audio:worker-audio_00: stoppedworker-calendar:worker-calendar_00:stoppedworker-conferences:worker-conferences_00: stoppedworker-crm-sync:worker-crm-sync_00:stoppedworker-es-update:worker-es-update_00: stoppedartisan-schedule:artisan-schedule_00: stoppedartisan-schedule:artisan-schedule_00: startedjiminny-worker-processing-1:jiminny-worker-processing-1_00: startedjiminny-worker-processing-2:jiminny-worker-processing-2_00: startedsing-1 0: startedjiminny-worker-processing-3:jiminny-worker-processing-3_00: startedjiminny-worker-processing-4:jiminny-worker-processing-4_00: startedjiminny-worker-processing-5:jiminny-worker-processing-5_00: startedjiminny-worker-processing-delayed: jiminny-worker-processing-delayed_00: startedworker:worker_00: startedworker-analytics:worker-analytics_00: startedworker-audio:worker-audio_00: startedworker-calendar:worker-calendar_00:startedworker-conferences:worker-conferences_00: startedworker-crm-sync:worker-crm-sync_00: startedworker-crm-update:worker-crm-update_00: startedworker-download:worker-download_00: startedworker-emails:worker-emails_00: startedworker-es-update:worker-es-update_00:startedworker-nudges:worker-nudges_00: startedroot@docker_lamp_1:/home/jiminny#php artisan jiminny:debugDispatching 100 MatchActivityCrmDatajobs (portal=2)Done.Watch logs and runjiminny:debug observeRateLimit to inspect cachestate.root@docker_lamp_1:/home/jiminny# ]84-zshX5screenpipe"O ₴62.01ms DONE1.32ms DONE1.13ms DONE15.28ms DONE-zsh+DEV...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
18343
|
793
|
26
|
2026-05-11T11:12:22.864940+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778497942864_m2.jpg...
|
PhpStorm
|
faVsco.js – Client.php
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
PhostormVIewINavicareCodeWindowFV faVsco.js%9 JY-2 PhostormVIewINavicareCodeWindowFV faVsco.js%9 JY-20725-handle-HS-search-rate-limiroledey© BatchSyncCollectore balchsynckealsse* SyncCrmEntities Trait.php© CachedCrmServiceDecorator.php© ClosedDealStagesS © RateLimitException.phpDealrielasservice.gc)Decorateacuivilv.or© FieldDefinitions.phpC) FieldT vpeconverteclass Cllent extends Baseclient 1mpLements Hubspotclientintertacee Hubspotclientinterc) Hubspot lokenmanC) PavloadBuilder.phpC) Remotecrmobiectr© ResponseNormalizec) Service.onr© SyncFieldAction.phC) SvncRelatedActivitC) WebhookSvncBatclv MintearationAor> O AccessorsConfigD DTOD FiltersD JobsD ProspectSearchStra102W service lralts© DataClient.php© DecorateActivity.pr©LocalSearch.phpu LocalSearchintertac© RemoteSearch.phpc) Service.phpv W Listenersc) ConvertLeadActivitc) PurceLookuocache› D Metadata> MiarationO Pipedrivev Salesforce• D FieldsM OnnortunitvMatche116OpportunitySyncSti117M ProsneetSearchStr.Service TraitsC) Client nhr©DecorateActivity.pt. Delete@biectsTrait121© FieldDefinitions.php123© PayloadBuilder.php© Profile.php© QueryBuilder.phpTests passed: 13 (today 13:02)orivate tunction executerequestcallable saoivauueltrytreturn $apiCall();} catch (Throwable $e) €if ($this->isHubspotRateLimit($e)) {SretryAfter = $this->parseRetryAfter($e);Redis: :setex($cacheKey, $retryAfter, (string) $retryAfter);$this->log->warning('[Hubspot] Received 429 from API', ['team 1d'= sth1s->cont10->team 10cont10 1d'= $this->config->getId(),retry after = sretryAtter=> $e->qetMessageOllBACAANA 901FI1):Command &lExtract Surroundthrow new RatelimitExcentionn'Hubspot returned 429', SretryAfter, $e);throw $e;1 usagenrivate function getRateLimitCacheKevo• strinoneturn sorintfd formata'hubspot:ratelimit:portal:%d', $this->config->getId());Tusagepublic function isHubspotRateLimit(Throwable Se): boolif ($e instanceof BadRequestII $e instanceof DealApiExceptionII $e instanceof ContactApiExceptionIl Se instanceof CompanyApiExceptionI1 Se instanceof \GuzzleHttp\Exception\RequestExceptionreturn (int) $e->getCode() === 429;return false:HubSpot/Service.php| A2 A67 X3 A VNNN$0halPreparation for Refi... in 48m100% 18• Mon 11 May 14:12:22&console [pRODIA console (EU]A console [STAGING]E laravel.log xs\Command::run Memory usage before starting command {"conEntitles Startind Es undate worker "oid":12650."workenlid"*"s\Command: :run Memory usage for command {"cStarting CRM data matching {"activity":61.te single target {"target": "activities"rch ] Entity added to Redis list {"entiParticipants old state ("activity":6150Fetching token {"socialAccountId":1499,Token retrieved {"socialAccountId" :1499Generating access token. {"mode": "legagration owner matched as CRM Owner {"crmiss, calling the API {"identifier_typech contact {"email": "nikolay.nikolov@jiturned empty result, caching the miss vfter header or known message, using dei29 from API {"team_id":2, "config_id":2,secondly Limit.". errorivoe":"KAIHd", "trace_id":"7954a095-b2fb-4c22-bbb6-Rate limit caught. releasina 100 withStarting CRM data matching {"activity":te single target ""target": "activities'rch ] Entity added to Redis list f"entiParticinants old state "'activity":6144Fetching token {"socialAccountId":1499,Token retrieved "socialAccountId"• 1499aration owner matched as CRM Owner "cn/ local search hit {"identifier_type":"empty resultnd APt calle +ry neyt1 Rate limit caught, releasing job withStarting CRM data matching {"activity":te single target {"target":"activities"och1 Entitv added to Pedic lict fient:Participants old state ("activity":6143Fetching token {"socialAccountId":1499,Token retrieved {"socialAccountId" : 1499Generating access token. ("mode": "Legagration owner matched as CRM Owner ("cr/ local search hit ("identifier_type":"empty result - no APT calls. try next matching method f"1 Rate limit cauahtreleasing job withStarting CRM data matching {"activity",te single target ""target": "activitles'rch ] Entity added to Redis list {"entiParticinants old state {"activitv".614.Fetchind token -"socialAccountld":1499Token retrieved {"socialAccountId" :1499Generatina access token. "mode"."leoaaration owner matched as CRM Owner ""objects/contact/search' resulte...
|
NULL
|
1432801083172334174
|
NULL
|
click
|
ocr
|
NULL
|
PhostormVIewINavicareCodeWindowFV faVsco.js%9 JY-2 PhostormVIewINavicareCodeWindowFV faVsco.js%9 JY-20725-handle-HS-search-rate-limiroledey© BatchSyncCollectore balchsynckealsse* SyncCrmEntities Trait.php© CachedCrmServiceDecorator.php© ClosedDealStagesS © RateLimitException.phpDealrielasservice.gc)Decorateacuivilv.or© FieldDefinitions.phpC) FieldT vpeconverteclass Cllent extends Baseclient 1mpLements Hubspotclientintertacee Hubspotclientinterc) Hubspot lokenmanC) PavloadBuilder.phpC) Remotecrmobiectr© ResponseNormalizec) Service.onr© SyncFieldAction.phC) SvncRelatedActivitC) WebhookSvncBatclv MintearationAor> O AccessorsConfigD DTOD FiltersD JobsD ProspectSearchStra102W service lralts© DataClient.php© DecorateActivity.pr©LocalSearch.phpu LocalSearchintertac© RemoteSearch.phpc) Service.phpv W Listenersc) ConvertLeadActivitc) PurceLookuocache› D Metadata> MiarationO Pipedrivev Salesforce• D FieldsM OnnortunitvMatche116OpportunitySyncSti117M ProsneetSearchStr.Service TraitsC) Client nhr©DecorateActivity.pt. Delete@biectsTrait121© FieldDefinitions.php123© PayloadBuilder.php© Profile.php© QueryBuilder.phpTests passed: 13 (today 13:02)orivate tunction executerequestcallable saoivauueltrytreturn $apiCall();} catch (Throwable $e) €if ($this->isHubspotRateLimit($e)) {SretryAfter = $this->parseRetryAfter($e);Redis: :setex($cacheKey, $retryAfter, (string) $retryAfter);$this->log->warning('[Hubspot] Received 429 from API', ['team 1d'= sth1s->cont10->team 10cont10 1d'= $this->config->getId(),retry after = sretryAtter=> $e->qetMessageOllBACAANA 901FI1):Command &lExtract Surroundthrow new RatelimitExcentionn'Hubspot returned 429', SretryAfter, $e);throw $e;1 usagenrivate function getRateLimitCacheKevo• strinoneturn sorintfd formata'hubspot:ratelimit:portal:%d', $this->config->getId());Tusagepublic function isHubspotRateLimit(Throwable Se): boolif ($e instanceof BadRequestII $e instanceof DealApiExceptionII $e instanceof ContactApiExceptionIl Se instanceof CompanyApiExceptionI1 Se instanceof \GuzzleHttp\Exception\RequestExceptionreturn (int) $e->getCode() === 429;return false:HubSpot/Service.php| A2 A67 X3 A VNNN$0halPreparation for Refi... in 48m100% 18• Mon 11 May 14:12:22&console [pRODIA console (EU]A console [STAGING]E laravel.log xs\Command::run Memory usage before starting command {"conEntitles Startind Es undate worker "oid":12650."workenlid"*"s\Command: :run Memory usage for command {"cStarting CRM data matching {"activity":61.te single target {"target": "activities"rch ] Entity added to Redis list {"entiParticipants old state ("activity":6150Fetching token {"socialAccountId":1499,Token retrieved {"socialAccountId" :1499Generating access token. {"mode": "legagration owner matched as CRM Owner {"crmiss, calling the API {"identifier_typech contact {"email": "nikolay.nikolov@jiturned empty result, caching the miss vfter header or known message, using dei29 from API {"team_id":2, "config_id":2,secondly Limit.". errorivoe":"KAIHd", "trace_id":"7954a095-b2fb-4c22-bbb6-Rate limit caught. releasina 100 withStarting CRM data matching {"activity":te single target ""target": "activities'rch ] Entity added to Redis list f"entiParticinants old state "'activity":6144Fetching token {"socialAccountId":1499,Token retrieved "socialAccountId"• 1499aration owner matched as CRM Owner "cn/ local search hit {"identifier_type":"empty resultnd APt calle +ry neyt1 Rate limit caught, releasing job withStarting CRM data matching {"activity":te single target {"target":"activities"och1 Entitv added to Pedic lict fient:Participants old state ("activity":6143Fetching token {"socialAccountId":1499,Token retrieved {"socialAccountId" : 1499Generating access token. ("mode": "Legagration owner matched as CRM Owner ("cr/ local search hit ("identifier_type":"empty result - no APT calls. try next matching method f"1 Rate limit cauahtreleasing job withStarting CRM data matching {"activity",te single target ""target": "activitles'rch ] Entity added to Redis list {"entiParticinants old state {"activitv".614.Fetchind token -"socialAccountld":1499Token retrieved {"socialAccountId" :1499Generatina access token. "mode"."leoaaration owner matched as CRM Owner ""objects/contact/search' resulte...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
18344
|
792
|
29
|
2026-05-11T11:12:24.788957+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778497944788_m1.jpg...
|
PhpStorm
|
faVsco.js – Client.php
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
JY-20725-handle-HS-search Project: faVsco.js, menu
JY-20725-handle-HS-search-rate-limit, menu
Start Listening for PHP Debug Connections
HandleHubspotRateLimitTest
Run 'HandleHubspotRateLimitTest'
Debug 'HandleHubspotRateLimitTest'
More Actions
JetBrains AI...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JY-20725-handle-HS-search-rate-limit, menu","depth":5,"on_screen":true,"help_text":"Git Branch: JY-20725-handle-HS-search-rate-limit","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"HandleHubspotRateLimitTest","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'HandleHubspotRateLimitTest'","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Debug 'HandleHubspotRateLimitTest'","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More Actions","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JetBrains AI","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
5685266402682420683
|
-8926130836387591936
|
click
|
hybrid
|
NULL
|
Project: faVsco.js, menu
JY-20725-handle-HS-search Project: faVsco.js, menu
JY-20725-handle-HS-search-rate-limit, menu
Start Listening for PHP Debug Connections
HandleHubspotRateLimitTest
Run 'HandleHubspotRateLimitTest'
Debug 'HandleHubspotRateLimitTest'
More Actions
JetBrains AI
iTerm2ShellEditViewSessionScriptsProfilesWindowHelp(ahlPreparation for Refi... in 48 m100% <78• Mon 11 May 14:12:24181DEV (docker)-zshDOCKERcompiledeventsroutesviews•₴1DEV (docker)$2APP (-zsh)*3Jiminny-worker-processing-2:jiminny-worker-processing-2_00: stoppedjiminny-worker-processing-3:jiminny-worker-processing-3_00: stoppedjiminny-worker-processing-4:jiminny-worker-processing-4_00: stoppedjiminny-worker-processing-delayed: jiminny-worker-processing-delayed_00: stoppedworker-analytics:worker-analytics_00: stoppedjiminny-worker-processing-5:jiminny-worker-processing-5_00: stoppedworker-crm-update:worker-crm-update_00: stoppedworker-download:worker-download_00:stoppedworker-nudges:worker-nudges_00:stoppedjiminny-worker-processing-1:jiminny-worker-processing-1_00: stoppedworker-emails:worker-emails_00: stoppedworker:worker_00: stoppedworker-audio:worker-audio_00: stoppedworker-calendar:worker-calendar_00:stoppedworker-conferences:worker-conferences_00: stoppedworker-crm-sync:worker-crm-sync_00:stoppedworker-es-update:worker-es-update_00: stoppedartisan-schedule:artisan-schedule_00: stoppedartisan-schedule:artisan-schedule_00: startedjiminny-worker-processing-1:jiminny-worker-processing-1_00: startedjiminny-worker-processing-2:jiminny-worker-processing-2_00: startedsing-1 0: startedjiminny-worker-processing-3:jiminny-worker-processing-3_00: startedjiminny-worker-processing-4:jiminny-worker-processing-4_00: startedjiminny-worker-processing-5:jiminny-worker-processing-5_00: startedjiminny-worker-processing-delayed: jiminny-worker-processing-delayed_00: startedworker:worker_00: startedworker-analytics:worker-analytics_00: startedworker-audio:worker-audio_00: startedworker-calendar:worker-calendar_00:startedworker-conferences:worker-conferences_00: startedworker-crm-sync:worker-crm-sync_00: startedworker-crm-update:worker-crm-update_00: startedworker-download:worker-download_00: startedworker-emails:worker-emails_00: startedworker-es-update:worker-es-update_00:startedworker-nudges:worker-nudges_00: startedroot@docker_lamp_1:/home/jiminny#php artisan jiminny:debugDispatching 100 MatchActivityCrmDatajobs (portal=2)Done.Watch logs and runjiminny:debug observeRateLimit to inspect cachestate.root@docker_lamp_1:/home/jiminny# ]84-zshX5screenpipe"O ₴62.01ms DONE1.32ms DONE1.13ms DONE15.28ms DONE-zsh+DEV...
|
18342
|
NULL
|
NULL
|
NULL
|
|
18345
|
792
|
30
|
2026-05-11T11:12:29.172903+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778497949172_m1.jpg...
|
PhpStorm
|
faVsco.js – Client.php
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
JY-20725-handle-HS-search Project: faVsco.js, menu
JY-20725-handle-HS-search-rate-limit, menu
Start Listening for PHP Debug Connections
HandleHubspotRateLimitTest
Run 'HandleHubspotRateLimitTest'
Debug 'HandleHubspotRateLimitTest'
More Actions...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JY-20725-handle-HS-search-rate-limit, menu","depth":5,"on_screen":true,"help_text":"Git Branch: JY-20725-handle-HS-search-rate-limit","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"HandleHubspotRateLimitTest","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'HandleHubspotRateLimitTest'","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Debug 'HandleHubspotRateLimitTest'","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More Actions","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
3299086470291663550
|
-8349389703787247352
|
click
|
hybrid
|
NULL
|
Project: faVsco.js, menu
JY-20725-handle-HS-search Project: faVsco.js, menu
JY-20725-handle-HS-search-rate-limit, menu
Start Listening for PHP Debug Connections
HandleHubspotRateLimitTest
Run 'HandleHubspotRateLimitTest'
Debug 'HandleHubspotRateLimitTest'
More Actions
iTerm2ShellEditViewSessionScriptsProfilesWindowHelp(ahlPreparation for Refi... in 48 mDEV (docker)-zshDOCKERcompiledeventsroutesviews•₴1DEV (docker)$2APP (-zsh)*3Jiminny-worker-processing-2:jiminny-worker-processing-2_00: stoppedjiminny-worker-processing-3:jiminny-worker-processing-3_00: stoppedjiminny-worker-processing-4:jiminny-worker-processing-4_00: stoppedjiminny-worker-processing-delayed: jiminny-worker-processing-delayed_00: stoppedworker-analytics:worker-analytics_00: stoppedjiminny-worker-processing-5:jiminny-worker-processing-5_00: stoppedworker-crm-update:worker-crm-update_00: stoppedworker-download:worker-download_00:stoppedworker-nudges:worker-nudges_00:stoppedjiminny-worker-processing-1:jiminny-worker-processing-1_00: stoppedworker-emails:worker-emails_00: stoppedworker:worker_00: stoppedworker-audio:worker-audio_00: stoppedworker-calendar:worker-calendar_00:stoppedworker-conferences:worker-conferences_00: stoppedworker-crm-sync:worker-crm-sync_00:stoppedworker-es-update:worker-es-update_00: stoppedartisan-schedule:artisan-schedule_00: stoppedartisan-schedule:artisan-schedule_00: startedjiminny-worker-processing-1:jiminny-worker-processing-1_00: startedjiminny-worker-processing-2:jiminny-worker-processing-2_00: startedsing-1 0: startedjiminny-worker-processing-3:jiminny-worker-processing-3_00: startedjiminny-worker-processing-4:jiminny-worker-processing-4_00: startedjiminny-worker-processing-5:jiminny-worker-processing-5_00: startedjiminny-worker-processing-delayed: jiminny-worker-processing-delayed_00: startedworker:worker_00: startedworker-analytics:worker-analytics_00: startedworker-audio:worker-audio_00: startedworker-calendar:worker-calendar_00:startedworker-conferences:worker-conferences_00: startedworker-crm-sync:worker-crm-sync_00: startedworker-crm-update:worker-crm-update_00: startedworker-download:worker-download_00: startedworker-emails:worker-emails_00: startedworker-es-update:worker-es-update_00:startedworker-nudges:worker-nudges_00: startedroot@docker_lamp_1:/home/jiminny#php artisan jiminny:debugDispatching 100 MatchActivityCrmDatajobs (portal=2)Done.Watch logs and runjiminny:debug observeRateLimit to inspect cachestate.root@docker_lamp_1:/home/jiminny# ]84-zshX5100% <78• Mon 11 May 14:12:28181-zsh+screenpipe"O ₴62.01ms DONE1.32ms DONE1.13ms DONE15.28ms DONEDEV...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
18346
|
793
|
27
|
2026-05-11T11:12:29.172860+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778497949172_m2.jpg...
|
PhpStorm
|
faVsco.js – Client.php
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
JY-20725-handle-HS-search Project: faVsco.js, menu
JY-20725-handle-HS-search-rate-limit, menu
Start Listening for PHP Debug Connections
HandleHubspotRateLimitTest
Run 'HandleHubspotRateLimitTest'
Debug 'HandleHubspotRateLimitTest'
More Actions...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"bounds":{"left":0.025930852,"top":0.019952115,"width":0.03856383,"height":0.025538707},"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JY-20725-handle-HS-search-rate-limit, menu","depth":5,"bounds":{"left":0.064494684,"top":0.019952115,"width":0.09541223,"height":0.025538707},"on_screen":true,"help_text":"Git Branch: JY-20725-handle-HS-search-rate-limit","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"bounds":{"left":0.82413566,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"HandleHubspotRateLimitTest","depth":6,"bounds":{"left":0.8394282,"top":0.019952115,"width":0.076130316,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'HandleHubspotRateLimitTest'","depth":6,"bounds":{"left":0.9155585,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Debug 'HandleHubspotRateLimitTest'","depth":6,"bounds":{"left":0.9268617,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More Actions","depth":6,"bounds":{"left":0.9381649,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
3299086470291663550
|
-8349389703787247352
|
click
|
hybrid
|
NULL
|
Project: faVsco.js, menu
JY-20725-handle-HS-search Project: faVsco.js, menu
JY-20725-handle-HS-search-rate-limit, menu
Start Listening for PHP Debug Connections
HandleHubspotRateLimitTest
Run 'HandleHubspotRateLimitTest'
Debug 'HandleHubspotRateLimitTest'
More Actions
PhostormVIewINavicareCodeWindowFV faVsco.js%9 JY-20725-handle-HS-search-rate-limiroledey© TrackAutomatedReportGeneratedEvent.php© BatchSyncCollectore balchsynckealsse* SyncCrmEntities Trait.php© CachedCrmServiceDecorator.php© ClosedDealStagesS © RateLimitException.phpDealrielasservice.gc)Decorateacuivilv.or© FieldDefinitions.phpC) FieldT vpeconverteclass Cllent extends Baseclient 1mpLements Hubspotclientintertacee Hubspotclientinterc) Hubspot lokenmanC) PavloadBuilder.phpC) Remotecrmobiectr© ResponseNormalizec) Service.onr© SyncFieldAction.phC) SvncRelatedActivitC) WebhookSvncBatclv MintearationAor> O AccessorsConfigD DTOD FiltersD JobsD ProspectSearchStraW service lralts© DataClient.php© DecorateActivity.prc Localsearch.one1031u LocalSearchintertac© RemoteSearch.phpc) Service.phpv W Listenersc) ConvertLeadActivitc) PurceLookuocache> Metadata> MiarationO Pipedrivev Salesforce• D FieldsM OnnortunitvMatche116OpportunitySyncSti117M ProsneetSearchStr.ServiceTraitsC) Client nhr©DecorateActivity.pt. Delete@biectsTrait© FieldDefinitions.php123© PayloadBuilder.php© Profile.php© QueryBuilder.phpTests passed: 13 (today 13:02)orivate tunction executerequestcallable saoivauueltry{return $apiCall();} catch (Throwable $e) {if ($this->isHubspotRate|imit($e)) {$retryAfter = $this->parseRetryAfter($e);Redis: :setex($cacheKey, $retryAfter, (string) $retryAfter);$this->log->warning('[Hubspot] Received 429 from API', ['team 1d'= sth1s->cont10->team 10cont10 1d'= $this->config->getId(),"retry after = sretryAtter= se-›gethessageonthrow new RateLimitException( message:) 'Hubspot returned 429', SretryAfter, $e);throw $e;1 usagenrivate function getRateLimitCacheKevo• strinoneturn sorintfd formata'hubspot:ratelimit:portal:%d', $this->config->getId());Tusagepublic function isHubspotRateLimit(Throwable $e): boolif ($e instanceof BadRequestIl $e instanceof DealApiExceptionII $e instanceof ContactApiExceptionIl Se instanceof CompanyApiExceptionI1 Se instanceof \GuzzleHttp\Exception\RequestExceptionreturn (int) $e->getCode() === 429;return false:HubSpot/Service.php| A2 A67 X3 A VMI11 MII1TIIMII 1$0halPreparation for Refi... in 48m100% 58• Mon 11 May 14:12:28&console [pRODlA console (EU]A console [STAGING]E laravel.log xs\Command: :run Memory usage before starting command {"comEntitles Startind Es undate worker "oid":12650."workenlid"*"s\Command: :run Memory usage for command {"cStarting CRM data matching {"activity":61.te single target {"target": "activities"rch ] Entity added to Redis list {"entiParticipants old state ("activity":6150Fetching token {"socialAccountId":1499,Token retrieved {"socialAccountId" :1499Generating access token. {"mode": "Legagration owner matched as CRM Owner {"crmiss, calling the API {"identifier_typech contact {"email": "nikolay.nikolov@jiturned empty result, caching the miss vfter header or known message, using dei29 from API {"team_id":2, "config_id":2,secondly Limit.\", \"errorType\":\ "RATEd", "trace_id":"7954a095-b2fb-4c22-bbb6-Rate limit caught. releasina 100 withStarting CRM data matching f"activity":te single target ""target": "activities'rch ] Entity added to Redis list f"entiParticinants old state "'activity":6144Fetching token {"socialAccountId":1499,Token retrieved "socialAccountId"• 1499aration owner matched as CRM Owner "cn/ local search hit {"identifier_type":"empty resultnd APt calle +ry neyt1 Rate limit caught, releasing job withStarting CRM data matching {"activity":te single target {"target":"activities"rch ] Entity added to Redis list {"entiParticipants old state ("activity":6143Fetching token {"socialAccountId":1499,Token retrieved {"socialAccountId" : 1499Generating access token. ("mode": "Legagration owner matched as CRM Owner ("cr/ local search hit ("identifier_type":"empty result - no APT calls. try next matching method {"1 Doto 14nd+ couch+releasing job withStarting CRM data matching {"activity",te single target {"target"."activities'rch ] Entity added to Redis list {"entiParticipants old state {"activity":6143Fetching token {"socialAccountId"•1499)Token retrieved {"socialAccountId" :1499Generating access token. {"mode". "leo:aration owner matched as CRM Owner <"cbjects/contact/search' resulte...
|
18343
|
NULL
|
NULL
|
NULL
|
|
18347
|
792
|
31
|
2026-05-11T11:12:34.250599+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778497954250_m1.jpg...
|
PhpStorm
|
faVsco.js – Client.php
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
JY-20725-handle-HS-search Project: faVsco.js, menu
JY-20725-handle-HS-search-rate-limit, menu
Start Listening for PHP Debug Connections
HandleHubspotRateLimitTest
Run 'HandleHubspotRateLimitTest'
Debug 'HandleHubspotRateLimitTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
2
67
3
Previous Highlighted Error...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JY-20725-handle-HS-search-rate-limit, menu","depth":5,"on_screen":true,"help_text":"Git Branch: JY-20725-handle-HS-search-rate-limit","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"HandleHubspotRateLimitTest","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'HandleHubspotRateLimitTest'","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Debug 'HandleHubspotRateLimitTest'","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More Actions","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JetBrains AI","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Search Everywhere","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"IDE and Project Settings","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.088194445,"height":0.027777778},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"2","depth":4,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"67","depth":4,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"3","depth":4,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
-964503098742680800
|
-8740352678700184768
|
click
|
hybrid
|
NULL
|
Project: faVsco.js, menu
JY-20725-handle-HS-search Project: faVsco.js, menu
JY-20725-handle-HS-search-rate-limit, menu
Start Listening for PHP Debug Connections
HandleHubspotRateLimitTest
Run 'HandleHubspotRateLimitTest'
Debug 'HandleHubspotRateLimitTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
2
67
3
Previous Highlighted Error
iTerm2ShellEditViewSessionScriptsProfilesWindowHelp(ahlPreparation for Refi... in 48 mDEV (docker)-zshDOCKERcompiledeventsroutesviews•₴1DEV (docker)$2APP (-zsh)*3Jiminny-worker-processing-2:jiminny-worker-processing-2_00: stoppedjiminny-worker-processing-3:jiminny-worker-processing-3_00: stoppedjiminny-worker-processing-4:jiminny-worker-processing-4_00: stoppedjiminny-worker-processing-delayed: jiminny-worker-processing-delayed_00: stoppedworker-analytics:worker-analytics_00: stoppedjiminny-worker-processing-5:jiminny-worker-processing-5_00: stoppedworker-crm-update:worker-crm-update_00: stoppedworker-download:worker-download_00:stoppedworker-nudges:worker-nudges_00:stoppedjiminny-worker-processing-1:jiminny-worker-processing-1_00: stoppedworker-emails:worker-emails_00: stoppedworker:worker_00: stoppedworker-audio:worker-audio_00: stoppedworker-calendar:worker-calendar_00:stoppedworker-conferences:worker-conferences_00: stoppedworker-crm-sync:worker-crm-sync_00:stoppedworker-es-update:worker-es-update_00: stoppedartisan-schedule:artisan-schedule_00: stoppedartisan-schedule:artisan-schedule_00: startedjiminny-worker-processing-1:jiminny-worker-processing-1_00: startedjiminny-worker-processing-2:jiminny-worker-processing-2_00: startedsing-1 0: startedjiminny-worker-processing-3:jiminny-worker-processing-3_00: startedjiminny-worker-processing-4:jiminny-worker-processing-4_00: startedjiminny-worker-processing-5:jiminny-worker-processing-5_00: startedjiminny-worker-processing-delayed: jiminny-worker-processing-delayed_00: startedworker:worker_00: startedworker-analytics:worker-analytics_00: startedworker-audio:worker-audio_00: startedworker-calendar:worker-calendar_00:startedworker-conferences:worker-conferences_00: startedworker-crm-sync:worker-crm-sync_00: startedworker-crm-update:worker-crm-update_00: startedworker-download:worker-download_00: startedworker-emails:worker-emails_00: startedworker-es-update:worker-es-update_00:startedworker-nudges:worker-nudges_00: startedroot@docker_lamp_1:/home/jiminny#php artisan jiminny:debugDispatching 100 MatchActivityCrmDatajobs (portal=2)Done.Watch logs and runjiminny:debug observeRateLimit to inspect cachestate.root@docker_lamp_1:/home/jiminny# ]84-zshX5100% <78• Mon 11 May 14:12:33181-zsh+screenpipe"O ₴62.01ms DONE1.32ms DONE1.13ms DONE15.28ms DONEDEV...
|
18345
|
NULL
|
NULL
|
NULL
|
|
18348
|
793
|
28
|
2026-05-11T11:12:34.262229+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778497954262_m2.jpg...
|
PhpStorm
|
faVsco.js – Client.php
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
JY-20725-handle-HS-search Project: faVsco.js, menu
JY-20725-handle-HS-search-rate-limit, menu
Start Listening for PHP Debug Connections
HandleHubspotRateLimitTest
Run 'HandleHubspotRateLimitTest'
Debug 'HandleHubspotRateLimitTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
2
67
3...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"bounds":{"left":0.025930852,"top":0.019952115,"width":0.03856383,"height":0.025538707},"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JY-20725-handle-HS-search-rate-limit, menu","depth":5,"bounds":{"left":0.064494684,"top":0.019952115,"width":0.09541223,"height":0.025538707},"on_screen":true,"help_text":"Git Branch: JY-20725-handle-HS-search-rate-limit","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"bounds":{"left":0.82413566,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"HandleHubspotRateLimitTest","depth":6,"bounds":{"left":0.8394282,"top":0.019952115,"width":0.076130316,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'HandleHubspotRateLimitTest'","depth":6,"bounds":{"left":0.9155585,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Debug 'HandleHubspotRateLimitTest'","depth":6,"bounds":{"left":0.9268617,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More Actions","depth":6,"bounds":{"left":0.9381649,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JetBrains AI","depth":5,"bounds":{"left":0.96609044,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Search Everywhere","depth":5,"bounds":{"left":0.9773936,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"IDE and Project Settings","depth":5,"bounds":{"left":0.9886968,"top":0.019952115,"width":0.011303186,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.042220745,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"2","depth":4,"bounds":{"left":0.50731385,"top":0.17478053,"width":0.007978723,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"67","depth":4,"bounds":{"left":0.51728725,"top":0.17478053,"width":0.009973404,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"3","depth":4,"bounds":{"left":0.52925533,"top":0.17478053,"width":0.007978723,"height":0.015163607},"on_screen":true,"role_description":"text"}]...
|
7750778324264792027
|
-8740265267525727424
|
click
|
hybrid
|
NULL
|
Project: faVsco.js, menu
JY-20725-handle-HS-search Project: faVsco.js, menu
JY-20725-handle-HS-search-rate-limit, menu
Start Listening for PHP Debug Connections
HandleHubspotRateLimitTest
Run 'HandleHubspotRateLimitTest'
Debug 'HandleHubspotRateLimitTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
2
67
3
PhostormFV faVsco.jsVIewINavicareCodeLaravel%9 JY-20725-handle-HS-search-rate-limitKeractorTOOISProject© BatchSyncCollectore balchsynckealsse* SyncCrmEntities Trait.php© CachedCrmServiceDecorator.php© ClosedDealStagesS © RateLimitException.phpDealrielasservice.gc)Decorateacuivilv.or© FieldDefinitions.phpC) FieldT vpeconvertee Hubspotclientinterc) Hubspotlokenman© PayloadBuilder.phpC) Remotecrmobiectr© ResponseNormalize125c) Service.onr127© SyncFieldAction.phC) SvncRelatedActivitC) WebhookSvncBatclv MintearationAorM AcceccorsConfig132D DTOD FiltersD JobsProspectSearchStra134135136W sevice lraits© DataClient.php138© DecorateActivity.ph©LocalSearch.php® LocalSearchinterfar© RemoteSearch.php140141142c) Service.phpv D Listeners144© ConvertLeadActivitc) PurceLookuocache146› D Metadata> Miarationia Pioedrive150v Salesforce151• D FieldsM OnnortunitvMatche152OpportunitySyncSti153M ProsneetSearchStr.154• M ServiceTraitcC) Client nhr© DecorateActivity.pt. Delete@biectsTrait© FieldDefinitions.php© PayloadBuilder.php1601© Profile.php© QueryBuilder.phpTests passed: 13 (today 13:02)class Cllent extends Baseclient 1mpLements Hubspotclientintertacenubu1etunction 1shubspotrateuimithrowaole se: 000lII $e instanceof \GuzzleHttp\Exception\RequestExceptionreturn (int) $e->getCode() === 429;recurn talse• public function barseRetryAfter(Throwable Se): intmethod exastsSe.|'getResponseHeaders')) {Sheaders = $e->getResponseHeaders() ?: [1;svalue = Sheadens|"Retrv-Aften' ? Sheadens"retrv-aften' ? null:if (is_array($value)) €Svalue = Svaluel0l 22 nuleif (is_numeric($value)) {return (int) $valve;Smessage = strtolower ($this->parseMessage($e));if (str_contains($message, 'daily')) {if (str_contains($message, 'ten secondly')) {recurn 10if (str_contains($message, 'secondly')) {return 1Sthis->log->warning(' [Hubspot] No retry-after header or known message, using default', ['exception_class' => get_class($e),1 usagepublic function parseMessage(Throwable $e): stringHudspol/serwice.pnp| A2 A67 X3 A VIII / HIH$0halPreparation for Refi... in 48m100% 18• Mon 11 May 14:12:33&console [pRODIA console (EU]A console [STAGING]s\Command: :run Memory usage before starting command {"comEntitles Startind Es undate worker "oid":12650. "workenlid"*"s\Command: :run Memory usage for command {"cStarting CRM data matching {"activity":615te single target {"target": "activities"rch ] Entity added to Redis list {"entiParticipants old state {"activity":6150Fetching token {"socialAccountId":1499,Token retrieved {"socialAccountId" :1499Generating access token. {"mode": "legagration owner matched as CRM Owner {"crmiss, calling the API {"identifier_typech contact {"email": "nikolay.nikolov@jiturned empty result, caching the miss vfter header or known message, using dei29 from API {"team_id":2, "config_id":2,secondly Limit.\", \"errorType\":\ "RATEd", "trace_id":"7954a095-b2fb-4c22-bbb6-Rate limit caught. releasina 100 withStarting CRM data matching f"activity":te single target ""target": "activities'rch ] Entity added to Redis list f"entiParticinants old state "'activity":6144Fetching token {"socialAccountId":1499,Token retrieved "socialAccountId"• 1499aration owner matched as CRM Owner "cn/ local search hit {"identifier_type":"empty resultnd APt calle +ry neyt1 Rate limit caught, releasing job withStarting CRM data matching {"activity":te single target {"target":"activities"rch ] Entity added to Redis list {"entiParticipants old state ("activity":6143Fetching token {"socialAccountId":1499,Token retrieved {"socialAccountId" : 1499Generating access token. ("mode": "Legagration owner matched as CRM Owner ("cr/ local search hit ("identifier_type":"empty result - no APT calls. try next matching method {";1 Rate limit caught. releasing iob withStarting CRM data matching {"activity",te single target {"target"."activities'rch ] Entity added to Redis list {"entiParticinants old state {"activitv".614.Fetching token {"socialAccountId"•1499)Token retrieved {"socialAccountId" :1499Generatina access token. "mode"."Leo:aration owner matched as CRM Ownen {"crbjects/contact/search' resulte...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
18349
|
792
|
32
|
2026-05-11T11:12:41.350555+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778497961350_m1.jpg...
|
PhpStorm
|
faVsco.js – Client.php
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
iTerm2ShellEditViewSessionScriptsProfilesWindowHel iTerm2ShellEditViewSessionScriptsProfilesWindowHelp(ahlPreparation for Refi... in 48 m100% <78• Mon 11 May 14:12:40181DEV (docker)-zshDOCKERcompiledeventsroutesviews181DEV (docker)$2APP (-zsh)*3Jiminny-worker-processing-2:jiminny-worker-processing-2_00: stoppedjiminny-worker-processing-3:jiminny-worker-processing-3_00: stoppedjiminny-worker-processing-4:jiminny-worker-processing-4_00: stoppedjiminny-worker-processing-delayed: jiminny-worker-processing-delayed_00: stoppedworker-analytics:worker-analytics_00: stoppedjiminny-worker-processing-5:jiminny-worker-processing-5_00: stoppedworker-crm-update:worker-crm-update_00: stoppedworker-download:worker-download_00:stoppedworker-nudges:worker-nudges_00:stoppedjiminny-worker-processing-1:jiminny-worker-processing-1_00: stoppedworker-emails:worker-emails_00: stoppedworker:worker_00: stoppedworker-audio:worker-audio_00: stoppedworker-calendar:worker-calendar_00:stoppedworker-conferences:worker-conferences_00: stoppedworker-crm-sync:worker-crm-sync_00:stoppedworker-es-update:worker-es-update_00: stoppedartisan-schedule:artisan-schedule_00: stoppedartisan-schedule:artisan-schedule_00: startedjiminny-worker-processing-1:jiminny-worker-processing-1_00: startedjiminny-worker-processing-2:jiminny-worker-processing-2_00: startedsing-1 0: startedjiminny-worker-processing-3:jiminny-worker-processing-3_00: startedjiminny-worker-processing-4:jiminny-worker-processing-4_00: startedjiminny-worker-processing-5:jiminny-worker-processing-5_00: startedjiminny-worker-processing-delayed: jiminny-worker-processing-delayed_00: startedworker:worker_00: startedworker-analytics:worker-analytics_00: startedworker-audio:worker-audio_00: startedworker-calendar:worker-calendar_00:startedworker-conferences:worker-conferences_00: startedworker-crm-sync:worker-crm-sync_00: startedworker-crm-update:worker-crm-update_00: startedworker-download:worker-download_00: startedworker-emails:worker-emails_00: startedworker-es-update:worker-es-update_00:startedworker-nudges:worker-nudges_00: startedroot@docker_lamp_1:/home/jiminny#php artisan jiminny:debugDispatching 100 MatchActivityCrmDatajobs (portal=2)Done.Watch logs and runjiminny:debug observeRateLimit to inspect cachestate.root@docker_lamp_1:/home/jiminny# ]84-zshX5screenpipe"O ₴62.01ms DONE1.32ms DONE1.13ms DONE15.28ms DONE-zsh+DEV...
|
NULL
|
-8006928121485343487
|
NULL
|
click
|
ocr
|
NULL
|
iTerm2ShellEditViewSessionScriptsProfilesWindowHel iTerm2ShellEditViewSessionScriptsProfilesWindowHelp(ahlPreparation for Refi... in 48 m100% <78• Mon 11 May 14:12:40181DEV (docker)-zshDOCKERcompiledeventsroutesviews181DEV (docker)$2APP (-zsh)*3Jiminny-worker-processing-2:jiminny-worker-processing-2_00: stoppedjiminny-worker-processing-3:jiminny-worker-processing-3_00: stoppedjiminny-worker-processing-4:jiminny-worker-processing-4_00: stoppedjiminny-worker-processing-delayed: jiminny-worker-processing-delayed_00: stoppedworker-analytics:worker-analytics_00: stoppedjiminny-worker-processing-5:jiminny-worker-processing-5_00: stoppedworker-crm-update:worker-crm-update_00: stoppedworker-download:worker-download_00:stoppedworker-nudges:worker-nudges_00:stoppedjiminny-worker-processing-1:jiminny-worker-processing-1_00: stoppedworker-emails:worker-emails_00: stoppedworker:worker_00: stoppedworker-audio:worker-audio_00: stoppedworker-calendar:worker-calendar_00:stoppedworker-conferences:worker-conferences_00: stoppedworker-crm-sync:worker-crm-sync_00:stoppedworker-es-update:worker-es-update_00: stoppedartisan-schedule:artisan-schedule_00: stoppedartisan-schedule:artisan-schedule_00: startedjiminny-worker-processing-1:jiminny-worker-processing-1_00: startedjiminny-worker-processing-2:jiminny-worker-processing-2_00: startedsing-1 0: startedjiminny-worker-processing-3:jiminny-worker-processing-3_00: startedjiminny-worker-processing-4:jiminny-worker-processing-4_00: startedjiminny-worker-processing-5:jiminny-worker-processing-5_00: startedjiminny-worker-processing-delayed: jiminny-worker-processing-delayed_00: startedworker:worker_00: startedworker-analytics:worker-analytics_00: startedworker-audio:worker-audio_00: startedworker-calendar:worker-calendar_00:startedworker-conferences:worker-conferences_00: startedworker-crm-sync:worker-crm-sync_00: startedworker-crm-update:worker-crm-update_00: startedworker-download:worker-download_00: startedworker-emails:worker-emails_00: startedworker-es-update:worker-es-update_00:startedworker-nudges:worker-nudges_00: startedroot@docker_lamp_1:/home/jiminny#php artisan jiminny:debugDispatching 100 MatchActivityCrmDatajobs (portal=2)Done.Watch logs and runjiminny:debug observeRateLimit to inspect cachestate.root@docker_lamp_1:/home/jiminny# ]84-zshX5screenpipe"O ₴62.01ms DONE1.32ms DONE1.13ms DONE15.28ms DONE-zsh+DEV...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
18350
|
793
|
29
|
2026-05-11T11:12:41.387371+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778497961387_m2.jpg...
|
PhpStorm
|
faVsco.js – Client.php
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
PhostormFV faVsco.jsVIewINavicareCodeLaravel%9 JY- PhostormFV faVsco.jsVIewINavicareCodeLaravel%9 JY-20725-handle-HS-search-rate-limiKeractorProject© BatchSyncCollectore balchsynckealsse* SyncCrmEntities Trait.php© CachedCrmServiceDecorator.php© ClosedDealStagesS © RateLimitException.phpDealrielasservice.gc)Decorateacuivilv.or© FieldDefinitions.phpC) FieldT vpeconvertee Hubspotclientinterc) Hubspotlokenman© PayloadBuilder.phpC) RemotecrmobiectrP ResponseNormalize125c) Service.onr© SyncFieldAction.phC) SvncRelatedActivit127C) WebhookSvncBatclv MintearationAor> O Accessors130ConfigD DTOD FiltersD JobsProspectSearchStraW sevice lraits© DataClient.php© DecorateActivity.ph©LocalSearch.phpu Localsearchinteria© RemoteSearch.php132134135136142c) Service.phpv W Listeners© ConvertLeadActivitc) PurceLookuocache› D Metadata> Miarationa Pioedrivev Salesforce150151• D FieldsM OnnortunitvMatcheOpportunitySyncSti153M ProsneetSearchStr.154• M ServiceTraitcC) Client nhr© DecorateActivity.pt. Delete@biectsTrait© FieldDefinitions.php© PayloadBuilder.php© Profile.php© QueryBuilder.phpTests passed: 13 (today 13:02)class Cllent extends Baseclient 1mpLements Hubspotclientintertacenubu1etunction 1shubspotrateuimithrowaole se: 000lII $e instanceof \GuzzLeHttp\Exception\RequestExceptionreturn (int) $e->getCode() === 429;recurn talsepubuac function parseRetrvAfterThrowable Se: 1nt1f method existsSe.'getResponseHeaders')) {Sheaders = $e->getResponseHeaders() ?: [1;svalue = Sheadersl'Retry-After'J ?? Sheadersl'retry-after"J ?? null;if (is_array($value)) €Svalue = Svaluel0l 22 nuleif (is_numeric($value)) {return (int) $valve;Smessage = strtolower ($this->$e->getMessage()($e));if (str_contains($message, 'daily')) {if (str_contains($message, 'ten secondly')) {recurn 10if (str_contains($message, 'secondly')) {return 1Sthis->log->warning(' [Hubspot] No retry-after header or known message, using default', I'exception_class' => get_class($e),1 usagepublic function parseMessage(Throwable $e): stringHudspol/serwice.pnp| A2 A67 X3 A VM1/ 1011TII1l 111$0halPreparation for Refi... in 48m100% 58• Mon 11 May 14:12:40&console [pRODIA console (EU]A console [STAGING]E laravel.log >s\Command: :run Memory usage before starting command {"conEntitles Startind Es undate worker "oid":12650."workenlid"*"s\Command: :run Memory usage for command f{"Starting CRM data matching {"activity":te single target {"target": "activities"rch ] Entity added to Redis list {"entiParticipants old state {"activity":6150Fetching token {"socialAccountId":1499,Token retrieved {"socialAccountId" :1499Generating access token. {"mode": "legagration owner matched as CRM Owner {"crmiss, calling the API {"identifier_typech contact {"email": "nikolay.nikolov@jiturned empty result, caching the miss vfter header or known message, using dei29 from API {"team_id":2, "config_id":2,secondly Limit.\", \"errorType\":\ "RATEd", "trace_id":"7954a095-b2fb-4c22-bbb6-Rate limit caught. releasina 100 withStarting CRM data matching f"activity":te single target *"target":"activities'rch ] Entity added to Redis list f"entiParticinants old state ""activitv:044Fetching token {"socialAccountId":1499,Token retrieved "socialAccountId"• 1499aration owner matched as CRM Owner "cn/ local search hit {"identifier_type":"empty resultnd APt calle +ry neyt1 Rate limit caught, releasing job withStarting CRM data matching {"activity":te single target {"target":"activities"rch ] Entity added to Redis list {"entiParticipants old state ("activity":6143Fetching token {"socialAccountId":1499,Token retrieved {"socialAccountId" : 1499Generating access token. ("mode": "Legagration owner matched as CRM Owner ("cr/ local search hit ("identifier_type":"empty result - no APT calls. try next matching method {"1 Rate limit caught. releasing iob withStarting CRM data matching {"activity",te single target {"target"."activities'rch ] Entity added to Redis list {"entiParticinants old state {"activitv".614.Fetching token {"socialAccountId"•1499)Token retrieved {"socialAccountId" :1499Generatina access token. "mode"."Leo:aration owner matched as CRM Ownen {"crbjects/contact/search' resulte...
|
NULL
|
6599567422634823440
|
NULL
|
click
|
ocr
|
NULL
|
PhostormFV faVsco.jsVIewINavicareCodeLaravel%9 JY- PhostormFV faVsco.jsVIewINavicareCodeLaravel%9 JY-20725-handle-HS-search-rate-limiKeractorProject© BatchSyncCollectore balchsynckealsse* SyncCrmEntities Trait.php© CachedCrmServiceDecorator.php© ClosedDealStagesS © RateLimitException.phpDealrielasservice.gc)Decorateacuivilv.or© FieldDefinitions.phpC) FieldT vpeconvertee Hubspotclientinterc) Hubspotlokenman© PayloadBuilder.phpC) RemotecrmobiectrP ResponseNormalize125c) Service.onr© SyncFieldAction.phC) SvncRelatedActivit127C) WebhookSvncBatclv MintearationAor> O Accessors130ConfigD DTOD FiltersD JobsProspectSearchStraW sevice lraits© DataClient.php© DecorateActivity.ph©LocalSearch.phpu Localsearchinteria© RemoteSearch.php132134135136142c) Service.phpv W Listeners© ConvertLeadActivitc) PurceLookuocache› D Metadata> Miarationa Pioedrivev Salesforce150151• D FieldsM OnnortunitvMatcheOpportunitySyncSti153M ProsneetSearchStr.154• M ServiceTraitcC) Client nhr© DecorateActivity.pt. Delete@biectsTrait© FieldDefinitions.php© PayloadBuilder.php© Profile.php© QueryBuilder.phpTests passed: 13 (today 13:02)class Cllent extends Baseclient 1mpLements Hubspotclientintertacenubu1etunction 1shubspotrateuimithrowaole se: 000lII $e instanceof \GuzzLeHttp\Exception\RequestExceptionreturn (int) $e->getCode() === 429;recurn talsepubuac function parseRetrvAfterThrowable Se: 1nt1f method existsSe.'getResponseHeaders')) {Sheaders = $e->getResponseHeaders() ?: [1;svalue = Sheadersl'Retry-After'J ?? Sheadersl'retry-after"J ?? null;if (is_array($value)) €Svalue = Svaluel0l 22 nuleif (is_numeric($value)) {return (int) $valve;Smessage = strtolower ($this->$e->getMessage()($e));if (str_contains($message, 'daily')) {if (str_contains($message, 'ten secondly')) {recurn 10if (str_contains($message, 'secondly')) {return 1Sthis->log->warning(' [Hubspot] No retry-after header or known message, using default', I'exception_class' => get_class($e),1 usagepublic function parseMessage(Throwable $e): stringHudspol/serwice.pnp| A2 A67 X3 A VM1/ 1011TII1l 111$0halPreparation for Refi... in 48m100% 58• Mon 11 May 14:12:40&console [pRODIA console (EU]A console [STAGING]E laravel.log >s\Command: :run Memory usage before starting command {"conEntitles Startind Es undate worker "oid":12650."workenlid"*"s\Command: :run Memory usage for command f{"Starting CRM data matching {"activity":te single target {"target": "activities"rch ] Entity added to Redis list {"entiParticipants old state {"activity":6150Fetching token {"socialAccountId":1499,Token retrieved {"socialAccountId" :1499Generating access token. {"mode": "legagration owner matched as CRM Owner {"crmiss, calling the API {"identifier_typech contact {"email": "nikolay.nikolov@jiturned empty result, caching the miss vfter header or known message, using dei29 from API {"team_id":2, "config_id":2,secondly Limit.\", \"errorType\":\ "RATEd", "trace_id":"7954a095-b2fb-4c22-bbb6-Rate limit caught. releasina 100 withStarting CRM data matching f"activity":te single target *"target":"activities'rch ] Entity added to Redis list f"entiParticinants old state ""activitv:044Fetching token {"socialAccountId":1499,Token retrieved "socialAccountId"• 1499aration owner matched as CRM Owner "cn/ local search hit {"identifier_type":"empty resultnd APt calle +ry neyt1 Rate limit caught, releasing job withStarting CRM data matching {"activity":te single target {"target":"activities"rch ] Entity added to Redis list {"entiParticipants old state ("activity":6143Fetching token {"socialAccountId":1499,Token retrieved {"socialAccountId" : 1499Generating access token. ("mode": "Legagration owner matched as CRM Owner ("cr/ local search hit ("identifier_type":"empty result - no APT calls. try next matching method {"1 Rate limit caught. releasing iob withStarting CRM data matching {"activity",te single target {"target"."activities'rch ] Entity added to Redis list {"entiParticinants old state {"activitv".614.Fetching token {"socialAccountId"•1499)Token retrieved {"socialAccountId" :1499Generatina access token. "mode"."Leo:aration owner matched as CRM Ownen {"crbjects/contact/search' resulte...
|
18348
|
NULL
|
NULL
|
NULL
|
|
18351
|
792
|
33
|
2026-05-11T11:12:46.533130+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778497966533_m1.jpg...
|
PhpStorm
|
faVsco.js – Client.php
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
JY-20725-handle-HS-search Project: faVsco.js, menu
JY-20725-handle-HS-search-rate-limit, menu
Start Listening for PHP Debug Connections
HandleHubspotRateLimitTest
Run 'HandleHubspotRateLimitTest'
Debug 'HandleHubspotRateLimitTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
2
67
3
Previous Highlighted Error
Next Highlighted Error
<?php
declare(strict_types=1);
namespace Jiminny\Services\Crm\Hubspot;
use HubSpot\Client\Crm\Deals\ApiException as DealApiException;
use HubSpot\Client\Crm\Contacts\ApiException as ContactApiException;
use HubSpot\Client\Crm\Companies\ApiException as CompanyApiException;
use HubSpot\Client\Crm\Contacts\Model\SimplePublicObjectWithAssociations as ContactsWithAssociations;
use HubSpot\Client\Crm\Companies\Model\SimplePublicObjectWithAssociations as CompaniesWithAssociations;
use HubSpot\Client\Crm\Deals\Model\SimplePublicObjectWithAssociations as DealWithAssociations;
use HubSpot\Client\Crm\Objects\Model\SimplePublicObjectInput;
use HubSpot\Client\Crm\Objects\Model\SimplePublicObjectWithAssociations as ObjectWithAssociations;
use HubSpot\Client\Crm\Pipelines\Model\Error;
use HubSpot\Client\Crm\Pipelines\Model\PipelineStage;
use HubSpot\Client\Crm\Properties\Model\Property;
use HubSpot\Discovery\Discovery;
use Jiminny\Exceptions\CrmException;
use Jiminny\Exceptions\RateLimitException;
use Jiminny\Exceptions\SocialAccountTokenInvalidException;
use Jiminny\Jobs\Crm\NoteObject;
use Jiminny\Models\Crm\Field;
use Jiminny\Services\Crm\BaseClient;
use Jiminny\Services\Crm\Hubspot\DTO\Response\Owner;
use Jiminny\Services\SocialAccountService;
use SevenShores\Hubspot\Exceptions\BadRequest;
use SevenShores\Hubspot\Exceptions\HubspotException;
use SevenShores\Hubspot\Factory;
use SevenShores\Hubspot\Http\Response;
use Jiminny\Services\Crm\Hubspot\Pagination\HubspotPaginationService;
use Illuminate\Support\Facades\Redis;
use Throwable;
/**
* @phpstan-type CrmFieldOption array{id:string, label:string, value?:string}
*/
class Client extends BaseClient implements HubspotClientInterface
{
public const string MIN_API_VERSION = '2';
public const string BASE_URL = '[URL_WITH_CREDENTIALS] T
* @param callable(): T $apiCall
* @return T
*
* @throws RateLimitException
*/
private function executeRequest(callable $apiCall)
{
$cacheKey = $this->getRateLimitCacheKey();
$cachedRetryAfter = Redis::get($cacheKey);
if (is_string($cachedRetryAfter) && is_numeric($cachedRetryAfter)) {
throw new RateLimitException(
'Hubspot rate limit (cached circuit-breaker)',
(int) $cachedRetryAfter,
);
}
try {
return $apiCall();
} catch (Throwable $e) {
if ($this->isHubspotRateLimit($e)) {
$retryAfter = $this->parseRetryAfter($e);
Redis::setex($cacheKey, $retryAfter, (string) $retryAfter);
$this->log->warning('[Hubspot] Received 429 from API', [
'team_id' => $this->config->team_id,
'config_id' => $this->config->getId(),
'retry_after' => $retryAfter,
'reason' => $e->getMessage(),
]);
throw new RateLimitException('Hubspot returned 429', $retryAfter, $e);
}
throw $e;
}
}
private function getRateLimitCacheKey(): string
{
return sprintf('hubspot:ratelimit:portal:%d', $this->config->getId());
}
public function isHubspotRateLimit(Throwable $e): bool
{
if ($e instanceof BadRequest
|| $e instanceof DealApiException
|| $e instanceof ContactApiException
|| $e instanceof CompanyApiException
|| $e instanceof \GuzzleHttp\Exception\RequestException
) {
return (int) $e->getCode() === 429;
}
return false;
}
public function parseRetryAfter(Throwable $e): int
{
if (method_exists($e, 'getResponseHeaders')) {
$headers = $e->getResponseHeaders() ?: [];
$value = $headers['Retry-After'] ?? $headers['retry-after'] ?? null;
if (is_array($value)) {
$value = $value[0] ?? null;
}
if (is_numeric($value)) {
return (int) $value;
}
}
$message = strtolower($e->getMessage()($e));
if (str_contains($message, 'daily')) {
return 600;
}
if (str_contains($message, 'ten secondly')) {
return 10;
}
if (str_contains($message, 'secondly')) {
return 1;
}
$this->log->warning('[Hubspot] No retry-after header or known message, using default', [
'exception_class' => get_class($e),
'message' => $message,
]);
return 10;
}
public function parseMessage(Throwable $e): string
{
if (! method_exists($e, 'getResponseBody')) {
return '';
}
$body = $e->getResponseBody();
if (is_string($body)) {
$body = json_decode($body, true) ?? [];
}
if (! is_array($body)) {
return '';
}
return (string) ($body['message'] ?? '');
}
public function getMinimumApiVersion(): string
{
return self::MIN_API_VERSION;
}
public function getInstance(): Factory
{
return new Factory([
'key' => $this->accessToken,
'oauth2' => true,
'base_url' => $this->baseUrl,
]);
}
public function getNewInstance(): Discovery
{
return \HubSpot\Factory::createWithAccessToken($this->accessToken);
}
/**
* Secondly and daily limits for Hubspot API
*
* Product Tier: Free & Starter | Professional & Enterprise | API add-on (any tier)
* Burst: 100/10 seconds | 150/10 seconds | 200/10 seconds
* Daily: 250,000 | 500,000 | 1,000,000
*
* Official documentation states: The search endpoints are rate limited to five requests per second.
* Since with 5 RPS were still hitting secondly rate limits we lowered it to 4
*/
public function getPaginatedData(array $payload, string $type, int $offset = 0): array
{
$total = 0;
$lastId = null;
$rows = [];
foreach ($this->getPaginatedDataGenerator($payload, $type, $offset, $total, $lastId) as $row) {
$rows[] = $row;
}
return ['results' => $rows, 'total' => $total, 'last_record' => $lastId];
}
/**
* @throws HubspotException
* @throws SocialAccountTokenInvalidException
* @throws BadRequest
*/
public function getPaginatedDataGenerator(
array $payload,
string $type,
int $offset = 0,
int &$total = 0,
?string &$lastRecordId = null
): \Generator {
return $this->paginationService->getPaginatedDataGenerator(
$this,
$payload,
$type,
$offset,
$total,
$lastRecordId
);
}
/**
* Execute a search request against HubSpot CRM objects with rate limiting.
*
* @param string $objectType The object type ('deals', 'companies', 'contacts', 'calls')
* @param array<string, mixed> $payload The search payload with filters, sorts, properties, etc.
* @return array The search response with 'results', 'total', 'paging' keys
* @throws RateLimitException When rate limit is hit
* @throws HubspotException On API errors
*/
public function search(string $objectType, array $payload): array
{
$endpoint = self::BASE_URL . "/crm/v3/objects/{$objectType}/search";
return $this->executeRequest(function () use ($endpoint, $payload) {
$response = $this->getInstance()->getClient()->request('POST', $endpoint, ['json' => $payload]);
return $response->toArray();
});
}
/**
* @throws DealApiException
* @throws CrmException
*/
public function getOpportunityById(string $crmId, array $fields): array
{
try {
$deal = $this->getNewInstance()->crm()->deals()->basicApi()->getById(
$crmId,
implode(',', $fields),
'companies,contacts'
);
} catch (DealApiException $e) {
$this->log->info('[Hubspot] Failed to fetch opportunity', [
'crm_id' => $crmId,
'reason' => $e->getMessage(),
]);
throw $e;
}
if (! $deal instanceof DealWithAssociations) {
throw new CrmException('Deal not found');
}
return [
'id' => $deal->getId(),
'properties' => $deal->getProperties(),
'associations' => $deal->getAssociations(),
];
}
/**
* Generic batch read method for HubSpot objects
*
* @param string $objectType The object type ('deals', 'companies', 'contacts')
* @param array<string> $crmIds Array of HubSpot object IDs (max 100)
* @param array<string> $fields Array of property names to fetch
*
* @return array<string, array> Array keyed by CRM ID with object data
*/
private function batchReadObjects(string $objectType, array $crmIds, array $fields): array
{
if (empty($crmIds)) {
return [];
}
$this->validateBatchSize($objectType, $crmIds);
$this->ensureValidToken();
try {
$batchConfig = $this->createBatchConfiguration($objectType);
$batchReadRequest = $this->prepareBatchRequest($batchConfig, $crmIds, $fields);
$response = $batchConfig['api']->read($batchReadRequest);
$this->validateApiResponse($response, $objectType);
$results = $this->processApiResults($response);
$this->logBatchResults($objectType, $crmIds, $results);
return $results;
} catch (\Throwable $e) {
$this->handleBatchError($e, $objectType, $crmIds);
}
}
private function validateBatchSize(string $objectType, array $crmIds): void
{
if (count($crmIds) > 100) {
throw new \InvalidArgumentException("Batch size cannot exceed 100 {$objectType}");
}
}
private function createBatchConfiguration(string $objectType): array
{
$configurations = [
'deals' => [
'batchReadRequest' => new \HubSpot\Client\Crm\Deals\Model\BatchReadInputSimplePublicObjectId(),
'inputClass' => \HubSpot\Client\Crm\Deals\Model\SimplePublicObjectId::class,
'api' => $this->getNewInstance()->crm()->deals()->batchApi(),
],
'companies' => [
'batchReadRequest' => new \HubSpot\Client\Crm\Companies\Model\BatchReadInputSimplePublicObjectId(),
'inputClass' => \HubSpot\Client\Crm\Companies\Model\SimplePublicObjectId::class,
'api' => $this->getNewInstance()->crm()->companies()->batchApi(),
],
'contacts' => [
'batchReadRequest' => new \HubSpot\Client\Crm\Contacts\Model\BatchReadInputSimplePublicObjectId(),
'inputClass' => \HubSpot\Client\Crm\Contacts\Model\SimplePublicObjectId::class,
'api' => $this->getNewInstance()->crm()->contacts()->batchApi(),
],
];
if (! isset($configurations[$objectType])) {
throw new \InvalidArgumentException("Unsupported object type: {$objectType}");
}
return $configurations[$objectType];
}
private function prepareBatchRequest(array $batchConfig, array $crmIds, array $fields): object
{
$batchReadRequest = $batchConfig['batchReadRequest'];
$inputClass = $batchConfig['inputClass'];
$inputs = array_map(function ($crmId) use ($inputClass) {
$input = new $inputClass();
$input->setId($crmId);
return $input;
}, $crmIds);
$batchReadRequest->setInputs($inputs);
$batchReadRequest->setProperties($fields);
return $batchReadRequest;
}
private function validateApiResponse($response, string $objectType): void
{
if (! $response) {
throw new CrmException("HubSpot API returned null response for {$objectType} batch read");
}
}
private function processApiResults($response): array
{
$results = [];
$responseResults = $response->getResults();
if ($responseResults) {
foreach ($responseResults as $object) {
if ($object && $object->getId()) {
$results[$object->getId()] = [
'id' => $object->getId(),
'properties' => $object->getProperties() ?: [],
];
}
}
}
return $results;
}
private function logBatchResults(string $objectType, array $crmIds, array $results): void
{
$this->log->info("[HubSpot] Batch fetched {$objectType}", [
'requested_count' => count($crmIds),
'returned_count' => count($results),
'crm_ids' => $crmIds,
]);
}
private function handleBatchError(\Throwable $e, string $objectType, array $crmIds): void
{
$errorMessage = $e->getMessage() ?: 'Unknown error';
$errorTrace = $e->getTraceAsString() ?: 'No trace available';
$this->log->error("[HubSpot] Failed to batch fetch {$objectType}", [
'crm_ids' => $crmIds,
'error' => $errorMessage,
'trace' => $errorTrace,
]);
throw new CrmException("Failed to batch fetch {$objectType}: " . $errorMessage);
}
/**
* Batch read multiple opportunities by their CRM IDs
*
* @param array<string> $crmIds Array of HubSpot deal IDs (max 100)
* @param array<string> $fields Array of property names to fetch
*
* @return array<string, array> Array keyed by CRM ID with opportunity data
*/
public function getOpportunitiesByIds(array $crmIds, array $fields): array
{
return $this->batchReadObjects('deals', $crmIds, $fields);
}
/**
* Batch read multiple companies by their CRM IDs
*
* @param array<string> $crmIds Array of HubSpot company IDs (max 100)
* @param array<string> $fields Array of property names to fetch
*
* @return array<string, array> Array keyed by CRM ID with company data
*/
public function getCompaniesByIds(array $crmIds, array $fields): array
{
return $this->batchReadObjects('companies', $crmIds, $fields);
}
/**
* Batch read multiple contacts by their CRM IDs
*
* @param array<string> $crmIds Array of HubSpot contact IDs (max 100)
* @param array<string> $fields Array of property names to fetch
*
* @return array<string, array> Array keyed by CRM ID with contact data
*/
public function getContactsByIds(array $crmIds, array $fields): array
{
return $this->batchReadObjects('contacts', $crmIds, $fields);
}
/**
* @throws CompanyApiException
* @throws CrmException
*/
public function getAccountById(string $crmId, array $fields): array
{
try {
$company = $this->getNewInstance()->crm()->companies()->basicApi()->getById(
$crmId,
implode(',', $fields),
);
} catch (CompanyApiException $e) {
$this->log->info('[Hubspot] Failed to fetch account', [
'crm_id' => $crmId,
'reason' => $e->getMessage(),
]);
throw $e;
}
if (! $company instanceof CompaniesWithAssociations) {
throw new CrmException('Account not found');
}
return [
'id' => $company->getId(),
'properties' => $company->getProperties(),
];
}
/**
* @throws ContactApiException
* @throws CrmException
*/
public function getContactById(string $crmId, array $fields): array
{
try {
$contact = $this->getNewInstance()->crm()->contacts()->basicApi()->getById(
$crmId,
implode(',', $fields)
);
} catch (ContactApiException $e) {
$this->log->info('[Hubspot] Failed to fetch contact', [
'crm_id' => $crmId,
'reason' => $e->getMessage(),
]);
throw $e;
}
if (! $contact instanceof ContactsWithAssociations) {
throw new CrmException('Contact not found');
}
return [
'id' => $contact->getId(),
'properties' => $contact->getProperties(),
];
}
/**
* This is email search request that Hubspot offers as GET (more generous quota)
*/
public function getContactByEmail(string $email, array $fields = []): array
{
try {
$contact = $this->getNewInstance()->crm()->contacts()->basicApi()->getById(
$email,
implode(',', $fields),
null,
false,
'email'
);
return [
'id' => $contact->getId(),
'properties' => $contact->getProperties(),
];
} catch (ContactApiException $e) {
$this->log->info('[Hubspot] Failed to fetch contact', [
'email' => $email,
'reason' => $e->getMessage(),
]);
return [];
}
}
/**
* @throws CrmException
*/
public function fetchProperty(string $objectType, string $propertyId): Property
{
$result = $this->getNewInstance()->crm()->properties()->coreApi()->getByName($objectType, $propertyId);
if (! $result instanceof Property) {
$this->log->error('[Hubspot] Failed to fetch property', [
'object_type' => $objectType,
'property_id' => $propertyId,
'reason' => $result->getMessage(),
]);
throw new CrmException('Failed to fetch property');
}
return $result;
}
/**
* @return array<CrmFieldOption>
*/
public function fetchPropertyOptions(string $objectType, string $propertyId): array
{
/** @var array<CrmFieldOption> */
return $this->fetchProperty($objectType, $propertyId)->getOptions();
}
/**
* @return array<array{id:string, label:string, deleted:bool}>
*/
public function fetchCallDispositions(): array
{
/** @var Response $response */
$response = $this->getInstance()->engagements()->getCallDispositions();
/**
* @var array<array{
* id:string,
* label:string,
* deleted: bool
* }>
*/
return $response->toArray();
}
/**
* @return array<CrmFieldOption>
*/
public function fetchOpportunityPipelineStages(): array
{
$stages = [];
$apiResponse = $this->getNewInstance()->crm()->pipelines()->pipelinesApi()->getAll('deals');
if ($apiResponse instanceof Error) {
$this->log->error('[Hubspot] Failed to fetch opportunity pipelines', [
'reason' => $apiResponse->getMessage(),
]);
return [];
}
foreach ($apiResponse->getResults() as $pipeline) {
$pipelineStages = array_map(
static function (PipelineStage $stage) {
return [
'id' => $stage->getId(),
'label' => $stage->getLabel(),
];
},
$pipeline->getStages()
);
$stages = array_merge($stages, $pipelineStages);
}
return $stages;
}
public function fetchOpportunityPipelines(): array
{
$pipelines = [];
try {
$apiResponse = $this->makeRequest('/crm/v3/pipelines/deals');
} catch (\Exception $e) {
$this->log->info('[Hubspot] Failed to fetch opportunity pipelines', [
'reason' => $e->getMessage(),
]);
return [];
}
$response = $apiResponse->toArray();
foreach ($response['results'] as $pipeline) {
$pipelines[] = [
'id' => $pipeline['id'],
'label' => $pipeline['label'],
];
}
return $pipelines;
}
/**
* @return array<CrmFieldOption>
*/
public function fetchMeetingOutcomeFieldOptions(Field $field): array
{
return $field->getCrmProviderId() === 'meetingOutcome'
? $this->fetchMeetingOutcomeTypes()
: $this->fetchCallActivityTypes();
}
public function fetchMeetingOutcomeTypes(): array
{
return $this->extractMeetingTypeOptions(
'[URL_WITH_CREDENTIALS] Response $response */
$response = $this->getInstance()
->getClient()
->request('GET', $endpoint);
/**
* @var array<array{
* value: string,
* label: string,
* displayOrder: int
* }> $optionData
*/
$optionData = $response->toArray()['options'] ?? [];
$options = [];
foreach ($optionData as $item) {
$options[] = [
'id' => $item['value'],
'value' => $item['value'],
'label' => $item['label'],
'display_order' => $item['displayOrder'],
];
}
return $options;
}
/**
* @return array<CrmFieldOption>
*/
public function fetchDispositionFieldOptions(): array
{
$options = [];
$dispositions = $this->fetchCallDispositions();
foreach ($dispositions as $disposition) {
if ($disposition['deleted'] !== false) {
continue;
}
$option['value'] = $disposition['id'];
$option['id'] = $disposition['id'];
$option['label'] = $disposition['label'];
$options[] = $option;
}
return $options;
}
/**
* @return array<CrmFieldOption>
*/
public function fetchOpportunityFieldOptions(Field $field): array
{
if ($field->isStageField()) {
return $this->fetchOpportunityPipelineStages();
}
if ($field->isPipelineField()) {
return $this->fetchOpportunityPipelines();
}
return $this->fetchPropertyOptions('deals', $field->getCrmProviderId());
}
/**
* @throws BadRequest
* @throws HubspotException
*/
public function makeRequest(string $endpoint, $method = 'GET', $payload = [], ?string $queryString = null)
{
$endpoint = self::BASE_URL . $endpoint;
if ($method === 'GET') {
return $this->getInstance()->getClient()?->request(
method: $method,
endpoint: $endpoint,
query_string: $queryString
);
} else {
return $this->getInstance()->getClient()->request($method, $endpoint, [
'json' => ($payload),
]);
}
}
/**
* @throws BadRequest
* @throws HubspotException
*/
public function createMeeting(array $payload): Response
{
$endpoint = '/crm/v3/objects/meetings';
return $this->makeRequest($endpoint, 'POST', $payload);
}
/**
* @throws BadRequest
* @throws HubspotException
*/
public function updateMeeting(string $meetingId, array $payload): Response
{
$endpoint = '/crm/v3/objects/meetings/' . $meetingId;
return $this->makeRequest($endpoint, 'PATCH', $payload);
}
/**
* @throws \Exception
*/
public function createNote(
string $body,
string $ownerId,
int $timestamp,
string $objectId,
NoteObject $noteObject
): ?string {
try {
$noteInput = new SimplePublicObjectInput([
'properties' => [
'hs_note_body' => $body,
'hubspot_owner_id' => $ownerId,
'hs_timestamp' => $timestamp,
],
]);
// Create note
$note = $this->getNewInstance()->crm()->objects()->basicApi()->create('note', $noteInput);
$this->getNewInstance()->crm()->objects()->associationsApi()->create(
'note',
$note->getId(),
$this->getNoteObject($noteObject),
$objectId,
$this->getNoteAssociationType($noteObject),
);
return $note->getId();
} catch (\Exception $e) {
$this->log->error('[Hubspot] Failed to create note', [
'objectId' => $objectId,
'noteObject' => $noteObject->getObjectType(),
'reason' => $e->getMessage(),
]);
\Sentry::captureException($e);
}
return null;
}
public function updateEngagement(string $objectId, array $engagement, array $metadata): void
{
$this->getInstance()->engagements()->update($objectId, $engagement, $metadata);
}
public function getEngagementData(string $engagementId): array
{
$engagement = $this->getInstance()->engagements()->get($engagementId);
return $engagement->toArray();
}
public function createEngagement(array $engagement, array $associations, array $metadata): Response
{
return $this->getInstance()
->engagements()
->create($engagement, $associations, $metadata);
}
public function isUnauthorizedException(\Exception $e): bool
{
// Check for specific HubSpot API exception types first
if ($e instanceof BadRequest) {
// BadRequest can contain 401 status codes
return $e->getCode() === 401;
}
// Check for HTTP client exceptions with status codes
if ($e instanceof \GuzzleHttp\Exception\RequestException && $e->hasResponse()) {
$response = $e->getResponse();
if ($response !== null) {
return $response->getStatusCode() === 401;
}
}
// Check for Guzzle HTTP exceptions
if ($e instanceof \GuzzleHttp\Exception\ClientException) {
return $e->getCode() === 401;
}
// Fallback to string matching as last resort, but be more specific
$message = strtolower($e->getMessage());
return str_contains($message, '401 unauthorized') ||
str_contains($message, 'http 401') ||
str_contains($message, 'status code 401') ||
(preg_match('/\b401\b/', $message) && str_contains($message, 'unauthorized'));
}
/**
* Validates and refreshes the access token if needed before API requests.
* This ensures long-running processes don't fail due to token expiration.
*
* @throws SocialAccountTokenInvalidException
*/
public function ensureValidToken(): void
{
if ($this->oauthAccount === null) {
return;
}
$newToken = $this->tokenManager->ensureValidToken($this->oauthAccount);
if ($newToken !== null) {
$this->accessToken = $newToken;
}
}
public function getConfig()
{
return $this->config;
}
// returns only active (archived=false)
public function getOwners(): array
{
return $this->getNewInstance()->crm()->owners()->getAll();
}
/**
* @param bool $archived
*
* @return array<Owner>|[]
*/
public function getOwnersArchived(bool $archived = true): array
{
$endpoint = '/crm/v3/owners';
$queryParams = [
'archived' => $archived ? 'true' : 'false',
];
$queryString = http_build_query($queryParams);
$owners = [];
try {
$response = $this->makeRequest(endpoint: $endpoint, queryString: $queryString);
$responseData = $response?->toArray();
foreach ($responseData['results'] as $result) {
try {
$owners[] = Owner::create($result);
} catch (Throwable $e) {
$this->log->error('[HubSpot] Failed to process owner data', [
'result' => $result,
'error' => $e->getMessage(),
]);
continue;
}
}
} catch (Throwable $e) {
$this->log->error('HubSpot] Failed to fetch owners', [
'archived' => $archived,
'error' => $e->getMessage(),
]);
return [];
}
return $owners;
}
public function getMeeting(string $engagementId): ObjectWithAssociations
{
return $this->getNewInstance()->crm()->objects()->basicApi()
->getById('meeting', $engagementId, null, 'contact,company,deal');
}
public function deleteEngagement(string $engagementId): void
{
$this->getInstance()->engagements()->delete((int) $engagementId);
}
public function getAssociationsData(array $ids, string $fromObject, string $toObject): array
{
$associationData = [];
$idChunks = array_chunk($ids, self::ASSOCIATIONS_BATCH_SIZE_LIMIT);
foreach ($idChunks as $idChunk) {
try {
$batchInput = new \HubSpot\Client\Crm\Associations\Model\BatchInputPublicObjectId();
$batchInput->setInputs(array_map(function ($id) {
$publicObjectId = new \HubSpot\Client\Crm\Associations\Model\PublicObjectId();
$publicObjectId->setId($id);
return $publicObjectId;
}, $idChunk));
$associatedObjectsData = $this
->getNewInstance()
->crm()
->associations()
->batchApi()
->read($fromObject, $toObject, $batchInput);
if ($associatedObjectsData instanceof \HubSpot\Client\Crm\Associations\Model\BatchResponsePublicAssociationMulti) {
foreach ($associatedObjectsData->getResults() as $association) {
$from = $association->getFrom()->getId();
$toAssociations = $association->getTo();
if (! empty($toAssociations)) {
$associationData[$from] = array_map(function ($item) {
return $item->getId();
}, $toAssociations);
}
}
}
// } catch (RateLimitException $e) {
// throw $e;
} catch (\Exception $e) {
$this->log->error('[Hubspot] Failed to fetch associations', [
'from_object' => $fromObject,
'to_object' => $toObject,
'reason' => $e->getMessage(),
]);
}
}
return $associationData;
}
/**
* @throws \Exception
*/
private function getNoteAssociationType(NoteObject $noteObject): string
{
return match($noteObject) {
NoteObject::Opportunity => 'note_to_deal',
NoteObject::Lead, NoteObject::Contact => 'note_to_contact', // or 'note_to_lead' if your portal supports it
NoteObject::Account => 'note_to_company',
NoteObject::Call, NoteObject::Event => throw new \Exception('Not supported'),
};
}
/**
* @throws \Exception
*/
private function getNoteObject(NoteObject $noteObject): string
{
return match($noteObject) {
NoteObject::Opportunity => 'deal',
NoteObject::Lead, NoteObject::Contact => 'contact',
NoteObject::Account => 'company',
NoteObject::Call, NoteObject::Event => throw new \Exception('Not supported'),
};
}
public function addAssociations(string $objectType, string $associationType, array $payload): Response
{
$endpoint = "/crm/v4/associations/$objectType/$associationType/batch/create";
return $this->makeRequest($endpoint, 'POST', $payload);
}
public function removeAssociations(string $objectType, string $associationType, array $payload): Response
{
$endpoint = "/crm/v4/associations/$objectType/$associationType/batch/archive";
return $this->makeRequest($endpoint, 'POST', $payload);
}
}
Show Replace Field
Search History
429
New Line
Match Case
Words
Regex
Replace History
Replace
New Line
Preserve case
1/4
Previous Occurrence
Next Occurrence
Filter Search Results
Open in Window, Multiple Cursors
Click to highlight
Close
Sync Changes
Hide This Notification
Code changed:
Hide
54
Previous Highlighted Error
Next Highlighted Error
[2026-05-11 11:08:45] local.INFO: Jiminny\Console\Commands\Command::run Memory usage before starting command {"command":"mailbox:batch:retry-failed","memoryBeforeCommandInMb":60.0,"memoryPeakBeforeCommandInMb":99.727} {"correlation_id":"43b1fb67-9aac-4fc6-9ced-689ecda5c548","trace_id":"60028d0e-dcd8-496a-a7ba-3a04b8d646e2"}
[2026-05-11 11:08:45] local.INFO: [Commands/AsyncUpdateEsEntities] Starting ES update worker {"pid":72650,"workerId":"","target":"activities"} {"correlation_id":"6d49ffdc-2ed7-4eae-a1ee-e25ca95bbea8","trace_id":"906573b5-005c-4820-8a32-3b0703ea86dd"}
[2026-05-11 11:08:46] local.INFO: Jiminny\Console\Commands\Command::run Memory usage for command {"command":"mailbox:batch:retry-failed","memoryBeforeCommandInMb":60.0,"memoryAfterCommandInMB":60.0,"memoryPeakBeforeCommandInMb":99.727,"memoryPeakAfterCommandInMB":99.727} {"correlation_id":"43b1fb67-9aac-4fc6-9ced-689ecda5c548","trace_id":"60028d0e-dcd8-496a-a7ba-3a04b8d646e2"}
[2026-05-11 11:09:12] local.INFO: [MatchActivityCrmData] Starting CRM data matching {"activity":615092,"remote_search":true,"set_configuration":2,"old_state":{"lead_id":null,"contact_id":null,"account_id":26,"opportunity_id":22,"stage_id":89}} {"correlation_id":"f33d47cb-76c6-4c27-a641-48cbf69e623d","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:12] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":615092} {"correlation_id":"f33d47cb-76c6-4c27-a641-48cbf69e623d","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:12] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":615092,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"f33d47cb-76c6-4c27-a641-48cbf69e623d","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:12] local.INFO: [MatchActivityCrmData] Participants old state {"activity":615092,"participants":[{"id":1004102,"user_id":null,"contact_id":null,"lead_id":null},{"id":1004103,"user_id":89,"contact_id":null,"lead_id":null}]} {"correlation_id":"f33d47cb-76c6-4c27-a641-48cbf69e623d","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:12] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"f33d47cb-76c6-4c27-a641-48cbf69e623d","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:12] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"f33d47cb-76c6-4c27-a641-48cbf69e623d","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:12] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"f33d47cb-76c6-4c27-a641-48cbf69e623d","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:12] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"f33d47cb-76c6-4c27-a641-48cbf69e623d","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:12] local.INFO: [Prospect match] Cache miss, calling the API {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"f33d47cb-76c6-4c27-a641-48cbf69e623d","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:13] local.INFO: [Hubspot] Failed to fetch contact {"email":"[EMAIL]","reason":"[404] Client error: `GET https://api.hubapi.com/crm/v3/objects/contacts/nikolay.nikolov%40jiminny.com?properties=email%2Cfirstname%2Clastname%2Ccountry%2Cphone%2Cmobilephone%2Cjobtitle%2Chubspot_owner_id%2Cassociatedcompanyid%2Cphoto&archived=0&idProperty=email` resulted in a `404 Not Found` response"} {"correlation_id":"f33d47cb-76c6-4c27-a641-48cbf69e623d","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:13] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"f33d47cb-76c6-4c27-a641-48cbf69e623d","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:13] local.WARNING: [Hubspot] No retry-after header or known message, using default {"exception_class":"SevenShores\\Hubspot\\Exceptions\\BadRequest","message":""} {"correlation_id":"f33d47cb-76c6-4c27-a641-48cbf69e623d","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:13] local.WARNING: [Hubspot] Received 429 from API {"team_id":2,"config_id":2,"retry_after":10,"message":"","reason":"Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response:
{\"status\":\"error\",\"message\":\"You have reached your secondly limit.\",\"errorType\":\"RATE_LIMIT\",\"correlationId\":\"019e16ba-1 (truncated...)
"} {"correlation_id":"f33d47cb-76c6-4c27-a641-48cbf69e623d","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:13] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":10,"delay":12} {"correlation_id":"f33d47cb-76c6-4c27-a641-48cbf69e623d","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [MatchActivityCrmData] Starting CRM data matching {"activity":614436,"remote_search":true,"set_configuration":2,"old_state":{"lead_id":null,"contact_id":null,"account_id":26,"opportunity_id":22,"stage_id":89}} {"correlation_id":"ccafe863-7885-4971-96fb-87ef6dd4adf3","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":614436} {"correlation_id":"ccafe863-7885-4971-96fb-87ef6dd4adf3","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":614436,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"ccafe863-7885-4971-96fb-87ef6dd4adf3","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [MatchActivityCrmData] Participants old state {"activity":614436,"participants":[{"id":1002751,"user_id":null,"contact_id":null,"lead_id":null},{"id":1002752,"user_id":89,"contact_id":null,"lead_id":null}]} {"correlation_id":"ccafe863-7885-4971-96fb-87ef6dd4adf3","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"ccafe863-7885-4971-96fb-87ef6dd4adf3","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"ccafe863-7885-4971-96fb-87ef6dd4adf3","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"ccafe863-7885-4971-96fb-87ef6dd4adf3","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"ccafe863-7885-4971-96fb-87ef6dd4adf3","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [Prospect match] Cache / local search hit {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"ccafe863-7885-4971-96fb-87ef6dd4adf3","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"ccafe863-7885-4971-96fb-87ef6dd4adf3","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":10,"delay":10} {"correlation_id":"ccafe863-7885-4971-96fb-87ef6dd4adf3","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [MatchActivityCrmData] Starting CRM data matching {"activity":614382,"remote_search":true,"set_configuration":2,"old_state":{"lead_id":null,"contact_id":null,"account_id":26,"opportunity_id":22,"stage_id":89}} {"correlation_id":"f00a4506-adfe-4fdc-b932-e6d2bc751fde","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":614382} {"correlation_id":"f00a4506-adfe-4fdc-b932-e6d2bc751fde","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":614382,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"f00a4506-adfe-4fdc-b932-e6d2bc751fde","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [MatchActivityCrmData] Participants old state {"activity":614382,"participants":[{"id":1002632,"user_id":null,"contact_id":null,"lead_id":null},{"id":1002633,"user_id":89,"contact_id":null,"lead_id":null}]} {"correlation_id":"f00a4506-adfe-4fdc-b932-e6d2bc751fde","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"f00a4506-adfe-4fdc-b932-e6d2bc751fde","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"f00a4506-adfe-4fdc-b932-e6d2bc751fde","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"f00a4506-adfe-4fdc-b932-e6d2bc751fde","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"f00a4506-adfe-4fdc-b932-e6d2bc751fde","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [Prospect match] Cache / local search hit {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"f00a4506-adfe-4fdc-b932-e6d2bc751fde","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"f00a4506-adfe-4fdc-b932-e6d2bc751fde","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":10,"delay":12} {"correlation_id":"f00a4506-adfe-4fdc-b932-e6d2bc751fde","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [MatchActivityCrmData] Starting CRM data matching {"activity":614381,"remote_search":true,"set_configuration":2,"old_state":{"lead_id":null,"contact_id":null,"account_id":26,"opportunity_id":22,"stage_id":89}} {"correlation_id":"36bd73f5-17f9-4f70-8254-2214543c7f8e","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":614381} {"correlation_id":"36bd73f5-17f9-4f70-8254-2214543c7f8e","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":614381,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"36bd73f5-17f9-4f70-8254-2214543c7f8e","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [MatchActivityCrmData] Participants old state {"activity":614381,"participants":[{"id":1002630,"user_id":null,"contact_id":null,"lead_id":null},{"id":1002631,"user_id":89,"contact_id":null,"lead_id":null}]} {"correlation_id":"36bd73f5-17f9-4f70-8254-2214543c7f8e","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"36bd73f5-17f9-4f70-8254-2214543c7f8e","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"36bd73f5-17f9-4f70-8254-2214543c7f8e","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"36bd73f5-17f9-4f70-8254-2214543c7f8e","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"36bd73f5-17f9-4f70-8254-2214543c7f8e","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [Prospect match] Cache / local search hit {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"36bd73f5-17f9-4f70-8254-2214543c7f8e","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"36bd73f5-17f9-4f70-8254-2214543c7f8e","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":10,"delay":10} {"correlation_id":"36bd73f5-17f9-4f70-8254-2214543c7f8e","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:15] local.INFO: [MatchActivityCrmData] Starting CRM data matching {"activity":614378,"remote_search":true,"set_configuration":2,"old_state":{"lead_id":null,"contact_id":6167,"account_id":null,"opportunity_id":null,"stage_id":null}} {"correlation_id":"a4a3a058-ec22-4f04-bb14-a9bff18ce214","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:15] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":614378} {"correlation_id":"a4a3a058-ec22-4f04-bb14-a9bff18ce214","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:15] local.INFO: [ Asyn...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JY-20725-handle-HS-search-rate-limit, menu","depth":5,"on_screen":true,"help_text":"Git Branch: JY-20725-handle-HS-search-rate-limit","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"HandleHubspotRateLimitTest","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'HandleHubspotRateLimitTest'","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Debug 'HandleHubspotRateLimitTest'","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More Actions","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JetBrains AI","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Search Everywhere","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"IDE and Project Settings","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.088194445,"height":0.027777778},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"2","depth":4,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"67","depth":4,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"3","depth":4,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Next Highlighted Error","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Services\\Crm\\Hubspot;\n\nuse HubSpot\\Client\\Crm\\Deals\\ApiException as DealApiException;\nuse HubSpot\\Client\\Crm\\Contacts\\ApiException as ContactApiException;\nuse HubSpot\\Client\\Crm\\Companies\\ApiException as CompanyApiException;\nuse HubSpot\\Client\\Crm\\Contacts\\Model\\SimplePublicObjectWithAssociations as ContactsWithAssociations;\nuse HubSpot\\Client\\Crm\\Companies\\Model\\SimplePublicObjectWithAssociations as CompaniesWithAssociations;\nuse HubSpot\\Client\\Crm\\Deals\\Model\\SimplePublicObjectWithAssociations as DealWithAssociations;\nuse HubSpot\\Client\\Crm\\Objects\\Model\\SimplePublicObjectInput;\nuse HubSpot\\Client\\Crm\\Objects\\Model\\SimplePublicObjectWithAssociations as ObjectWithAssociations;\nuse HubSpot\\Client\\Crm\\Pipelines\\Model\\Error;\nuse HubSpot\\Client\\Crm\\Pipelines\\Model\\PipelineStage;\nuse HubSpot\\Client\\Crm\\Properties\\Model\\Property;\nuse HubSpot\\Discovery\\Discovery;\nuse Jiminny\\Exceptions\\CrmException;\nuse Jiminny\\Exceptions\\RateLimitException;\nuse Jiminny\\Exceptions\\SocialAccountTokenInvalidException;\nuse Jiminny\\Jobs\\Crm\\NoteObject;\nuse Jiminny\\Models\\Crm\\Field;\nuse Jiminny\\Services\\Crm\\BaseClient;\nuse Jiminny\\Services\\Crm\\Hubspot\\DTO\\Response\\Owner;\nuse Jiminny\\Services\\SocialAccountService;\nuse SevenShores\\Hubspot\\Exceptions\\BadRequest;\nuse SevenShores\\Hubspot\\Exceptions\\HubspotException;\nuse SevenShores\\Hubspot\\Factory;\nuse SevenShores\\Hubspot\\Http\\Response;\nuse Jiminny\\Services\\Crm\\Hubspot\\Pagination\\HubspotPaginationService;\nuse Illuminate\\Support\\Facades\\Redis;\nuse Throwable;\n\n/**\n * @phpstan-type CrmFieldOption array{id:string, label:string, value?:string}\n */\nclass Client extends BaseClient implements HubspotClientInterface\n{\n public const string MIN_API_VERSION = '2';\n\n public const string BASE_URL = 'https://api.hubapi.com';\n\n public const int ASSOCIATIONS_BATCH_SIZE_LIMIT = 1000;\n\n private HubspotPaginationService $paginationService;\n private HubspotTokenManager $tokenManager;\n\n public function __construct(\n SocialAccountService $socialAccountService,\n HubspotPaginationService $paginationService,\n HubspotTokenManager $tokenManager\n ) {\n parent::__construct($socialAccountService);\n $this->paginationService = $paginationService;\n $this->tokenManager = $tokenManager;\n\n $this->setBaseUrl(self::BASE_URL);\n $this->setVersion(self::MIN_API_VERSION);\n }\n\n /**\n * Reacts to a rate limits (429) from HubSpot by translating it\n * into a RateLimitException carrying retry_after.\n *\n * Wrap any outbound HubSpot call (SDK or raw HTTP) like:\n *\n * $this->executeRequest(fn () => $this->getNewInstance()->crm()->...);\n *\n * @template T\n * @param callable(): T $apiCall\n * @return T\n *\n * @throws RateLimitException\n */\n private function executeRequest(callable $apiCall)\n {\n $cacheKey = $this->getRateLimitCacheKey();\n\n $cachedRetryAfter = Redis::get($cacheKey);\n if (is_string($cachedRetryAfter) && is_numeric($cachedRetryAfter)) {\n throw new RateLimitException(\n 'Hubspot rate limit (cached circuit-breaker)',\n (int) $cachedRetryAfter,\n );\n }\n\n try {\n return $apiCall();\n } catch (Throwable $e) {\n if ($this->isHubspotRateLimit($e)) {\n $retryAfter = $this->parseRetryAfter($e);\n\n Redis::setex($cacheKey, $retryAfter, (string) $retryAfter);\n\n $this->log->warning('[Hubspot] Received 429 from API', [\n 'team_id' => $this->config->team_id,\n 'config_id' => $this->config->getId(),\n 'retry_after' => $retryAfter,\n 'reason' => $e->getMessage(),\n ]);\n\n throw new RateLimitException('Hubspot returned 429', $retryAfter, $e);\n }\n\n throw $e;\n }\n }\n\n private function getRateLimitCacheKey(): string\n {\n return sprintf('hubspot:ratelimit:portal:%d', $this->config->getId());\n }\n\n public function isHubspotRateLimit(Throwable $e): bool\n {\n if ($e instanceof BadRequest\n || $e instanceof DealApiException\n || $e instanceof ContactApiException\n || $e instanceof CompanyApiException\n || $e instanceof \\GuzzleHttp\\Exception\\RequestException\n ) {\n return (int) $e->getCode() === 429;\n }\n\n return false;\n }\n\n public function parseRetryAfter(Throwable $e): int\n {\n if (method_exists($e, 'getResponseHeaders')) {\n $headers = $e->getResponseHeaders() ?: [];\n $value = $headers['Retry-After'] ?? $headers['retry-after'] ?? null;\n if (is_array($value)) {\n $value = $value[0] ?? null;\n }\n if (is_numeric($value)) {\n return (int) $value;\n }\n }\n\n $message = strtolower($e->getMessage()($e));\n\n if (str_contains($message, 'daily')) {\n return 600;\n }\n if (str_contains($message, 'ten secondly')) {\n return 10;\n }\n if (str_contains($message, 'secondly')) {\n return 1;\n }\n\n $this->log->warning('[Hubspot] No retry-after header or known message, using default', [\n 'exception_class' => get_class($e),\n 'message' => $message,\n ]);\n\n return 10;\n }\n\n public function parseMessage(Throwable $e): string\n {\n if (! method_exists($e, 'getResponseBody')) {\n return '';\n }\n\n $body = $e->getResponseBody();\n if (is_string($body)) {\n $body = json_decode($body, true) ?? [];\n }\n\n if (! is_array($body)) {\n return '';\n }\n\n return (string) ($body['message'] ?? '');\n }\n\n public function getMinimumApiVersion(): string\n {\n return self::MIN_API_VERSION;\n }\n\n public function getInstance(): Factory\n {\n return new Factory([\n 'key' => $this->accessToken,\n 'oauth2' => true,\n 'base_url' => $this->baseUrl,\n ]);\n }\n\n public function getNewInstance(): Discovery\n {\n return \\HubSpot\\Factory::createWithAccessToken($this->accessToken);\n }\n\n /**\n * Secondly and daily limits for Hubspot API\n *\n * Product Tier: Free & Starter | Professional & Enterprise | API add-on (any tier)\n * Burst: 100/10 seconds | 150/10 seconds | 200/10 seconds\n * Daily: 250,000 | 500,000 | 1,000,000\n *\n * Official documentation states: The search endpoints are rate limited to five requests per second.\n * Since with 5 RPS were still hitting secondly rate limits we lowered it to 4\n */\n public function getPaginatedData(array $payload, string $type, int $offset = 0): array\n {\n $total = 0;\n $lastId = null;\n $rows = [];\n foreach ($this->getPaginatedDataGenerator($payload, $type, $offset, $total, $lastId) as $row) {\n $rows[] = $row;\n }\n\n return ['results' => $rows, 'total' => $total, 'last_record' => $lastId];\n }\n\n /**\n * @throws HubspotException\n * @throws SocialAccountTokenInvalidException\n * @throws BadRequest\n */\n public function getPaginatedDataGenerator(\n array $payload,\n string $type,\n int $offset = 0,\n int &$total = 0,\n ?string &$lastRecordId = null\n ): \\Generator {\n return $this->paginationService->getPaginatedDataGenerator(\n $this,\n $payload,\n $type,\n $offset,\n $total,\n $lastRecordId\n );\n }\n\n /**\n * Execute a search request against HubSpot CRM objects with rate limiting.\n *\n * @param string $objectType The object type ('deals', 'companies', 'contacts', 'calls')\n * @param array<string, mixed> $payload The search payload with filters, sorts, properties, etc.\n * @return array The search response with 'results', 'total', 'paging' keys\n * @throws RateLimitException When rate limit is hit\n * @throws HubspotException On API errors\n */\n public function search(string $objectType, array $payload): array\n {\n $endpoint = self::BASE_URL . \"/crm/v3/objects/{$objectType}/search\";\n\n return $this->executeRequest(function () use ($endpoint, $payload) {\n $response = $this->getInstance()->getClient()->request('POST', $endpoint, ['json' => $payload]);\n\n return $response->toArray();\n });\n }\n\n /**\n * @throws DealApiException\n * @throws CrmException\n */\n public function getOpportunityById(string $crmId, array $fields): array\n {\n try {\n $deal = $this->getNewInstance()->crm()->deals()->basicApi()->getById(\n $crmId,\n implode(',', $fields),\n 'companies,contacts'\n );\n } catch (DealApiException $e) {\n $this->log->info('[Hubspot] Failed to fetch opportunity', [\n 'crm_id' => $crmId,\n 'reason' => $e->getMessage(),\n ]);\n\n throw $e;\n }\n\n if (! $deal instanceof DealWithAssociations) {\n throw new CrmException('Deal not found');\n }\n\n return [\n 'id' => $deal->getId(),\n 'properties' => $deal->getProperties(),\n 'associations' => $deal->getAssociations(),\n ];\n }\n\n /**\n * Generic batch read method for HubSpot objects\n *\n * @param string $objectType The object type ('deals', 'companies', 'contacts')\n * @param array<string> $crmIds Array of HubSpot object IDs (max 100)\n * @param array<string> $fields Array of property names to fetch\n *\n * @return array<string, array> Array keyed by CRM ID with object data\n */\n private function batchReadObjects(string $objectType, array $crmIds, array $fields): array\n {\n if (empty($crmIds)) {\n return [];\n }\n\n $this->validateBatchSize($objectType, $crmIds);\n $this->ensureValidToken();\n\n try {\n $batchConfig = $this->createBatchConfiguration($objectType);\n $batchReadRequest = $this->prepareBatchRequest($batchConfig, $crmIds, $fields);\n $response = $batchConfig['api']->read($batchReadRequest);\n\n $this->validateApiResponse($response, $objectType);\n\n $results = $this->processApiResults($response);\n $this->logBatchResults($objectType, $crmIds, $results);\n\n return $results;\n } catch (\\Throwable $e) {\n $this->handleBatchError($e, $objectType, $crmIds);\n }\n }\n\n private function validateBatchSize(string $objectType, array $crmIds): void\n {\n if (count($crmIds) > 100) {\n throw new \\InvalidArgumentException(\"Batch size cannot exceed 100 {$objectType}\");\n }\n }\n\n private function createBatchConfiguration(string $objectType): array\n {\n $configurations = [\n 'deals' => [\n 'batchReadRequest' => new \\HubSpot\\Client\\Crm\\Deals\\Model\\BatchReadInputSimplePublicObjectId(),\n 'inputClass' => \\HubSpot\\Client\\Crm\\Deals\\Model\\SimplePublicObjectId::class,\n 'api' => $this->getNewInstance()->crm()->deals()->batchApi(),\n ],\n 'companies' => [\n 'batchReadRequest' => new \\HubSpot\\Client\\Crm\\Companies\\Model\\BatchReadInputSimplePublicObjectId(),\n 'inputClass' => \\HubSpot\\Client\\Crm\\Companies\\Model\\SimplePublicObjectId::class,\n 'api' => $this->getNewInstance()->crm()->companies()->batchApi(),\n ],\n 'contacts' => [\n 'batchReadRequest' => new \\HubSpot\\Client\\Crm\\Contacts\\Model\\BatchReadInputSimplePublicObjectId(),\n 'inputClass' => \\HubSpot\\Client\\Crm\\Contacts\\Model\\SimplePublicObjectId::class,\n 'api' => $this->getNewInstance()->crm()->contacts()->batchApi(),\n ],\n ];\n\n if (! isset($configurations[$objectType])) {\n throw new \\InvalidArgumentException(\"Unsupported object type: {$objectType}\");\n }\n\n return $configurations[$objectType];\n }\n\n private function prepareBatchRequest(array $batchConfig, array $crmIds, array $fields): object\n {\n $batchReadRequest = $batchConfig['batchReadRequest'];\n $inputClass = $batchConfig['inputClass'];\n\n $inputs = array_map(function ($crmId) use ($inputClass) {\n $input = new $inputClass();\n $input->setId($crmId);\n\n return $input;\n }, $crmIds);\n\n $batchReadRequest->setInputs($inputs);\n $batchReadRequest->setProperties($fields);\n\n return $batchReadRequest;\n }\n\n private function validateApiResponse($response, string $objectType): void\n {\n if (! $response) {\n throw new CrmException(\"HubSpot API returned null response for {$objectType} batch read\");\n }\n }\n\n private function processApiResults($response): array\n {\n $results = [];\n $responseResults = $response->getResults();\n\n if ($responseResults) {\n foreach ($responseResults as $object) {\n if ($object && $object->getId()) {\n $results[$object->getId()] = [\n 'id' => $object->getId(),\n 'properties' => $object->getProperties() ?: [],\n ];\n }\n }\n }\n\n return $results;\n }\n\n private function logBatchResults(string $objectType, array $crmIds, array $results): void\n {\n $this->log->info(\"[HubSpot] Batch fetched {$objectType}\", [\n 'requested_count' => count($crmIds),\n 'returned_count' => count($results),\n 'crm_ids' => $crmIds,\n ]);\n }\n\n private function handleBatchError(\\Throwable $e, string $objectType, array $crmIds): void\n {\n $errorMessage = $e->getMessage() ?: 'Unknown error';\n $errorTrace = $e->getTraceAsString() ?: 'No trace available';\n\n $this->log->error(\"[HubSpot] Failed to batch fetch {$objectType}\", [\n 'crm_ids' => $crmIds,\n 'error' => $errorMessage,\n 'trace' => $errorTrace,\n ]);\n\n throw new CrmException(\"Failed to batch fetch {$objectType}: \" . $errorMessage);\n }\n\n /**\n * Batch read multiple opportunities by their CRM IDs\n *\n * @param array<string> $crmIds Array of HubSpot deal IDs (max 100)\n * @param array<string> $fields Array of property names to fetch\n *\n * @return array<string, array> Array keyed by CRM ID with opportunity data\n */\n public function getOpportunitiesByIds(array $crmIds, array $fields): array\n {\n return $this->batchReadObjects('deals', $crmIds, $fields);\n }\n\n /**\n * Batch read multiple companies by their CRM IDs\n *\n * @param array<string> $crmIds Array of HubSpot company IDs (max 100)\n * @param array<string> $fields Array of property names to fetch\n *\n * @return array<string, array> Array keyed by CRM ID with company data\n */\n public function getCompaniesByIds(array $crmIds, array $fields): array\n {\n return $this->batchReadObjects('companies', $crmIds, $fields);\n }\n\n /**\n * Batch read multiple contacts by their CRM IDs\n *\n * @param array<string> $crmIds Array of HubSpot contact IDs (max 100)\n * @param array<string> $fields Array of property names to fetch\n *\n * @return array<string, array> Array keyed by CRM ID with contact data\n */\n public function getContactsByIds(array $crmIds, array $fields): array\n {\n return $this->batchReadObjects('contacts', $crmIds, $fields);\n }\n\n /**\n * @throws CompanyApiException\n * @throws CrmException\n */\n public function getAccountById(string $crmId, array $fields): array\n {\n try {\n $company = $this->getNewInstance()->crm()->companies()->basicApi()->getById(\n $crmId,\n implode(',', $fields),\n );\n } catch (CompanyApiException $e) {\n $this->log->info('[Hubspot] Failed to fetch account', [\n 'crm_id' => $crmId,\n 'reason' => $e->getMessage(),\n ]);\n\n throw $e;\n }\n\n if (! $company instanceof CompaniesWithAssociations) {\n throw new CrmException('Account not found');\n }\n\n return [\n 'id' => $company->getId(),\n 'properties' => $company->getProperties(),\n ];\n }\n\n /**\n * @throws ContactApiException\n * @throws CrmException\n */\n public function getContactById(string $crmId, array $fields): array\n {\n try {\n $contact = $this->getNewInstance()->crm()->contacts()->basicApi()->getById(\n $crmId,\n implode(',', $fields)\n );\n } catch (ContactApiException $e) {\n $this->log->info('[Hubspot] Failed to fetch contact', [\n 'crm_id' => $crmId,\n 'reason' => $e->getMessage(),\n ]);\n\n throw $e;\n }\n\n if (! $contact instanceof ContactsWithAssociations) {\n throw new CrmException('Contact not found');\n }\n\n return [\n 'id' => $contact->getId(),\n 'properties' => $contact->getProperties(),\n ];\n }\n\n /**\n * This is email search request that Hubspot offers as GET (more generous quota)\n */\n public function getContactByEmail(string $email, array $fields = []): array\n {\n try {\n $contact = $this->getNewInstance()->crm()->contacts()->basicApi()->getById(\n $email,\n implode(',', $fields),\n null,\n false,\n 'email'\n );\n\n return [\n 'id' => $contact->getId(),\n 'properties' => $contact->getProperties(),\n ];\n } catch (ContactApiException $e) {\n $this->log->info('[Hubspot] Failed to fetch contact', [\n 'email' => $email,\n 'reason' => $e->getMessage(),\n ]);\n\n return [];\n }\n }\n\n /**\n * @throws CrmException\n */\n public function fetchProperty(string $objectType, string $propertyId): Property\n {\n $result = $this->getNewInstance()->crm()->properties()->coreApi()->getByName($objectType, $propertyId);\n\n if (! $result instanceof Property) {\n $this->log->error('[Hubspot] Failed to fetch property', [\n 'object_type' => $objectType,\n 'property_id' => $propertyId,\n 'reason' => $result->getMessage(),\n ]);\n\n throw new CrmException('Failed to fetch property');\n }\n\n return $result;\n }\n\n /**\n * @return array<CrmFieldOption>\n */\n public function fetchPropertyOptions(string $objectType, string $propertyId): array\n {\n /** @var array<CrmFieldOption> */\n return $this->fetchProperty($objectType, $propertyId)->getOptions();\n }\n\n /**\n * @return array<array{id:string, label:string, deleted:bool}>\n */\n public function fetchCallDispositions(): array\n {\n /** @var Response $response */\n $response = $this->getInstance()->engagements()->getCallDispositions();\n\n /**\n * @var array<array{\n * id:string,\n * label:string,\n * deleted: bool\n * }>\n */\n return $response->toArray();\n }\n\n /**\n * @return array<CrmFieldOption>\n */\n public function fetchOpportunityPipelineStages(): array\n {\n $stages = [];\n $apiResponse = $this->getNewInstance()->crm()->pipelines()->pipelinesApi()->getAll('deals');\n\n if ($apiResponse instanceof Error) {\n $this->log->error('[Hubspot] Failed to fetch opportunity pipelines', [\n 'reason' => $apiResponse->getMessage(),\n ]);\n\n return [];\n }\n\n foreach ($apiResponse->getResults() as $pipeline) {\n $pipelineStages = array_map(\n static function (PipelineStage $stage) {\n return [\n 'id' => $stage->getId(),\n 'label' => $stage->getLabel(),\n ];\n },\n $pipeline->getStages()\n );\n\n $stages = array_merge($stages, $pipelineStages);\n }\n\n return $stages;\n }\n\n public function fetchOpportunityPipelines(): array\n {\n $pipelines = [];\n\n try {\n $apiResponse = $this->makeRequest('/crm/v3/pipelines/deals');\n } catch (\\Exception $e) {\n $this->log->info('[Hubspot] Failed to fetch opportunity pipelines', [\n 'reason' => $e->getMessage(),\n ]);\n\n return [];\n }\n\n $response = $apiResponse->toArray();\n\n foreach ($response['results'] as $pipeline) {\n $pipelines[] = [\n 'id' => $pipeline['id'],\n 'label' => $pipeline['label'],\n ];\n }\n\n return $pipelines;\n }\n\n /**\n * @return array<CrmFieldOption>\n */\n public function fetchMeetingOutcomeFieldOptions(Field $field): array\n {\n return $field->getCrmProviderId() === 'meetingOutcome'\n ? $this->fetchMeetingOutcomeTypes()\n : $this->fetchCallActivityTypes();\n }\n\n public function fetchMeetingOutcomeTypes(): array\n {\n return $this->extractMeetingTypeOptions(\n 'https://api.hubapi.com/crm/v3/properties/meeting/hs_meeting_outcome'\n );\n }\n\n public function fetchCallActivityTypes(): array\n {\n return $this->extractMeetingTypeOptions(\n 'https://api.hubapi.com/crm/v3/properties/call/hs_activity_type'\n );\n }\n\n private function extractMeetingTypeOptions(string $endpoint): array\n {\n /** @var Response $response */\n $response = $this->getInstance()\n ->getClient()\n ->request('GET', $endpoint);\n\n /**\n * @var array<array{\n * value: string,\n * label: string,\n * displayOrder: int\n * }> $optionData\n */\n $optionData = $response->toArray()['options'] ?? [];\n\n $options = [];\n foreach ($optionData as $item) {\n $options[] = [\n 'id' => $item['value'],\n 'value' => $item['value'],\n 'label' => $item['label'],\n 'display_order' => $item['displayOrder'],\n ];\n }\n\n return $options;\n }\n\n /**\n * @return array<CrmFieldOption>\n */\n public function fetchDispositionFieldOptions(): array\n {\n $options = [];\n\n $dispositions = $this->fetchCallDispositions();\n\n foreach ($dispositions as $disposition) {\n if ($disposition['deleted'] !== false) {\n continue;\n }\n\n $option['value'] = $disposition['id'];\n $option['id'] = $disposition['id'];\n $option['label'] = $disposition['label'];\n\n $options[] = $option;\n }\n\n return $options;\n }\n\n /**\n * @return array<CrmFieldOption>\n */\n public function fetchOpportunityFieldOptions(Field $field): array\n {\n if ($field->isStageField()) {\n return $this->fetchOpportunityPipelineStages();\n }\n\n if ($field->isPipelineField()) {\n return $this->fetchOpportunityPipelines();\n }\n\n return $this->fetchPropertyOptions('deals', $field->getCrmProviderId());\n }\n\n /**\n * @throws BadRequest\n * @throws HubspotException\n */\n public function makeRequest(string $endpoint, $method = 'GET', $payload = [], ?string $queryString = null)\n {\n $endpoint = self::BASE_URL . $endpoint;\n\n if ($method === 'GET') {\n return $this->getInstance()->getClient()?->request(\n method: $method,\n endpoint: $endpoint,\n query_string: $queryString\n );\n } else {\n return $this->getInstance()->getClient()->request($method, $endpoint, [\n 'json' => ($payload),\n ]);\n }\n }\n\n /**\n * @throws BadRequest\n * @throws HubspotException\n */\n public function createMeeting(array $payload): Response\n {\n $endpoint = '/crm/v3/objects/meetings';\n\n return $this->makeRequest($endpoint, 'POST', $payload);\n }\n\n /**\n * @throws BadRequest\n * @throws HubspotException\n */\n public function updateMeeting(string $meetingId, array $payload): Response\n {\n $endpoint = '/crm/v3/objects/meetings/' . $meetingId;\n\n return $this->makeRequest($endpoint, 'PATCH', $payload);\n }\n\n /**\n * @throws \\Exception\n */\n public function createNote(\n string $body,\n string $ownerId,\n int $timestamp,\n string $objectId,\n NoteObject $noteObject\n ): ?string {\n try {\n $noteInput = new SimplePublicObjectInput([\n 'properties' => [\n 'hs_note_body' => $body,\n 'hubspot_owner_id' => $ownerId,\n 'hs_timestamp' => $timestamp,\n ],\n ]);\n\n // Create note\n $note = $this->getNewInstance()->crm()->objects()->basicApi()->create('note', $noteInput);\n\n $this->getNewInstance()->crm()->objects()->associationsApi()->create(\n 'note',\n $note->getId(),\n $this->getNoteObject($noteObject),\n $objectId,\n $this->getNoteAssociationType($noteObject),\n );\n\n return $note->getId();\n } catch (\\Exception $e) {\n $this->log->error('[Hubspot] Failed to create note', [\n 'objectId' => $objectId,\n 'noteObject' => $noteObject->getObjectType(),\n 'reason' => $e->getMessage(),\n ]);\n\n \\Sentry::captureException($e);\n }\n\n return null;\n }\n\n public function updateEngagement(string $objectId, array $engagement, array $metadata): void\n {\n $this->getInstance()->engagements()->update($objectId, $engagement, $metadata);\n }\n\n public function getEngagementData(string $engagementId): array\n {\n $engagement = $this->getInstance()->engagements()->get($engagementId);\n\n return $engagement->toArray();\n }\n\n public function createEngagement(array $engagement, array $associations, array $metadata): Response\n {\n return $this->getInstance()\n ->engagements()\n ->create($engagement, $associations, $metadata);\n }\n\n public function isUnauthorizedException(\\Exception $e): bool\n {\n // Check for specific HubSpot API exception types first\n if ($e instanceof BadRequest) {\n // BadRequest can contain 401 status codes\n return $e->getCode() === 401;\n }\n\n // Check for HTTP client exceptions with status codes\n if ($e instanceof \\GuzzleHttp\\Exception\\RequestException && $e->hasResponse()) {\n $response = $e->getResponse();\n if ($response !== null) {\n return $response->getStatusCode() === 401;\n }\n }\n\n // Check for Guzzle HTTP exceptions\n if ($e instanceof \\GuzzleHttp\\Exception\\ClientException) {\n return $e->getCode() === 401;\n }\n\n // Fallback to string matching as last resort, but be more specific\n $message = strtolower($e->getMessage());\n\n return str_contains($message, '401 unauthorized') ||\n str_contains($message, 'http 401') ||\n str_contains($message, 'status code 401') ||\n (preg_match('/\\b401\\b/', $message) && str_contains($message, 'unauthorized'));\n }\n\n /**\n * Validates and refreshes the access token if needed before API requests.\n * This ensures long-running processes don't fail due to token expiration.\n *\n * @throws SocialAccountTokenInvalidException\n */\n public function ensureValidToken(): void\n {\n if ($this->oauthAccount === null) {\n return;\n }\n\n $newToken = $this->tokenManager->ensureValidToken($this->oauthAccount);\n if ($newToken !== null) {\n $this->accessToken = $newToken;\n }\n }\n\n public function getConfig()\n {\n return $this->config;\n }\n\n // returns only active (archived=false)\n public function getOwners(): array\n {\n return $this->getNewInstance()->crm()->owners()->getAll();\n }\n\n /**\n * @param bool $archived\n *\n * @return array<Owner>|[]\n */\n public function getOwnersArchived(bool $archived = true): array\n {\n $endpoint = '/crm/v3/owners';\n $queryParams = [\n 'archived' => $archived ? 'true' : 'false',\n ];\n $queryString = http_build_query($queryParams);\n\n $owners = [];\n\n try {\n $response = $this->makeRequest(endpoint: $endpoint, queryString: $queryString);\n $responseData = $response?->toArray();\n\n foreach ($responseData['results'] as $result) {\n try {\n $owners[] = Owner::create($result);\n } catch (Throwable $e) {\n $this->log->error('[HubSpot] Failed to process owner data', [\n 'result' => $result,\n 'error' => $e->getMessage(),\n ]);\n\n continue;\n }\n }\n } catch (Throwable $e) {\n $this->log->error('HubSpot] Failed to fetch owners', [\n 'archived' => $archived,\n 'error' => $e->getMessage(),\n ]);\n\n return [];\n }\n\n return $owners;\n }\n\n public function getMeeting(string $engagementId): ObjectWithAssociations\n {\n return $this->getNewInstance()->crm()->objects()->basicApi()\n ->getById('meeting', $engagementId, null, 'contact,company,deal');\n }\n\n public function deleteEngagement(string $engagementId): void\n {\n $this->getInstance()->engagements()->delete((int) $engagementId);\n }\n\n public function getAssociationsData(array $ids, string $fromObject, string $toObject): array\n {\n $associationData = [];\n $idChunks = array_chunk($ids, self::ASSOCIATIONS_BATCH_SIZE_LIMIT);\n\n foreach ($idChunks as $idChunk) {\n try {\n $batchInput = new \\HubSpot\\Client\\Crm\\Associations\\Model\\BatchInputPublicObjectId();\n $batchInput->setInputs(array_map(function ($id) {\n $publicObjectId = new \\HubSpot\\Client\\Crm\\Associations\\Model\\PublicObjectId();\n $publicObjectId->setId($id);\n\n return $publicObjectId;\n }, $idChunk));\n\n $associatedObjectsData = $this\n ->getNewInstance()\n ->crm()\n ->associations()\n ->batchApi()\n ->read($fromObject, $toObject, $batchInput);\n\n if ($associatedObjectsData instanceof \\HubSpot\\Client\\Crm\\Associations\\Model\\BatchResponsePublicAssociationMulti) {\n foreach ($associatedObjectsData->getResults() as $association) {\n $from = $association->getFrom()->getId();\n $toAssociations = $association->getTo();\n\n if (! empty($toAssociations)) {\n $associationData[$from] = array_map(function ($item) {\n return $item->getId();\n }, $toAssociations);\n }\n }\n }\n// } catch (RateLimitException $e) {\n// throw $e;\n } catch (\\Exception $e) {\n $this->log->error('[Hubspot] Failed to fetch associations', [\n 'from_object' => $fromObject,\n 'to_object' => $toObject,\n 'reason' => $e->getMessage(),\n ]);\n }\n }\n\n return $associationData;\n }\n\n /**\n * @throws \\Exception\n */\n private function getNoteAssociationType(NoteObject $noteObject): string\n {\n return match($noteObject) {\n NoteObject::Opportunity => 'note_to_deal',\n NoteObject::Lead, NoteObject::Contact => 'note_to_contact', // or 'note_to_lead' if your portal supports it\n NoteObject::Account => 'note_to_company',\n NoteObject::Call, NoteObject::Event => throw new \\Exception('Not supported'),\n };\n }\n\n /**\n * @throws \\Exception\n */\n private function getNoteObject(NoteObject $noteObject): string\n {\n return match($noteObject) {\n NoteObject::Opportunity => 'deal',\n NoteObject::Lead, NoteObject::Contact => 'contact',\n NoteObject::Account => 'company',\n NoteObject::Call, NoteObject::Event => throw new \\Exception('Not supported'),\n };\n }\n\n public function addAssociations(string $objectType, string $associationType, array $payload): Response\n {\n $endpoint = \"/crm/v4/associations/$objectType/$associationType/batch/create\";\n\n return $this->makeRequest($endpoint, 'POST', $payload);\n }\n\n public function removeAssociations(string $objectType, string $associationType, array $payload): Response\n {\n $endpoint = \"/crm/v4/associations/$objectType/$associationType/batch/archive\";\n\n return $this->makeRequest($endpoint, 'POST', $payload);\n }\n}","depth":4,"on_screen":true,"value":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Services\\Crm\\Hubspot;\n\nuse HubSpot\\Client\\Crm\\Deals\\ApiException as DealApiException;\nuse HubSpot\\Client\\Crm\\Contacts\\ApiException as ContactApiException;\nuse HubSpot\\Client\\Crm\\Companies\\ApiException as CompanyApiException;\nuse HubSpot\\Client\\Crm\\Contacts\\Model\\SimplePublicObjectWithAssociations as ContactsWithAssociations;\nuse HubSpot\\Client\\Crm\\Companies\\Model\\SimplePublicObjectWithAssociations as CompaniesWithAssociations;\nuse HubSpot\\Client\\Crm\\Deals\\Model\\SimplePublicObjectWithAssociations as DealWithAssociations;\nuse HubSpot\\Client\\Crm\\Objects\\Model\\SimplePublicObjectInput;\nuse HubSpot\\Client\\Crm\\Objects\\Model\\SimplePublicObjectWithAssociations as ObjectWithAssociations;\nuse HubSpot\\Client\\Crm\\Pipelines\\Model\\Error;\nuse HubSpot\\Client\\Crm\\Pipelines\\Model\\PipelineStage;\nuse HubSpot\\Client\\Crm\\Properties\\Model\\Property;\nuse HubSpot\\Discovery\\Discovery;\nuse Jiminny\\Exceptions\\CrmException;\nuse Jiminny\\Exceptions\\RateLimitException;\nuse Jiminny\\Exceptions\\SocialAccountTokenInvalidException;\nuse Jiminny\\Jobs\\Crm\\NoteObject;\nuse Jiminny\\Models\\Crm\\Field;\nuse Jiminny\\Services\\Crm\\BaseClient;\nuse Jiminny\\Services\\Crm\\Hubspot\\DTO\\Response\\Owner;\nuse Jiminny\\Services\\SocialAccountService;\nuse SevenShores\\Hubspot\\Exceptions\\BadRequest;\nuse SevenShores\\Hubspot\\Exceptions\\HubspotException;\nuse SevenShores\\Hubspot\\Factory;\nuse SevenShores\\Hubspot\\Http\\Response;\nuse Jiminny\\Services\\Crm\\Hubspot\\Pagination\\HubspotPaginationService;\nuse Illuminate\\Support\\Facades\\Redis;\nuse Throwable;\n\n/**\n * @phpstan-type CrmFieldOption array{id:string, label:string, value?:string}\n */\nclass Client extends BaseClient implements HubspotClientInterface\n{\n public const string MIN_API_VERSION = '2';\n\n public const string BASE_URL = 'https://api.hubapi.com';\n\n public const int ASSOCIATIONS_BATCH_SIZE_LIMIT = 1000;\n\n private HubspotPaginationService $paginationService;\n private HubspotTokenManager $tokenManager;\n\n public function __construct(\n SocialAccountService $socialAccountService,\n HubspotPaginationService $paginationService,\n HubspotTokenManager $tokenManager\n ) {\n parent::__construct($socialAccountService);\n $this->paginationService = $paginationService;\n $this->tokenManager = $tokenManager;\n\n $this->setBaseUrl(self::BASE_URL);\n $this->setVersion(self::MIN_API_VERSION);\n }\n\n /**\n * Reacts to a rate limits (429) from HubSpot by translating it\n * into a RateLimitException carrying retry_after.\n *\n * Wrap any outbound HubSpot call (SDK or raw HTTP) like:\n *\n * $this->executeRequest(fn () => $this->getNewInstance()->crm()->...);\n *\n * @template T\n * @param callable(): T $apiCall\n * @return T\n *\n * @throws RateLimitException\n */\n private function executeRequest(callable $apiCall)\n {\n $cacheKey = $this->getRateLimitCacheKey();\n\n $cachedRetryAfter = Redis::get($cacheKey);\n if (is_string($cachedRetryAfter) && is_numeric($cachedRetryAfter)) {\n throw new RateLimitException(\n 'Hubspot rate limit (cached circuit-breaker)',\n (int) $cachedRetryAfter,\n );\n }\n\n try {\n return $apiCall();\n } catch (Throwable $e) {\n if ($this->isHubspotRateLimit($e)) {\n $retryAfter = $this->parseRetryAfter($e);\n\n Redis::setex($cacheKey, $retryAfter, (string) $retryAfter);\n\n $this->log->warning('[Hubspot] Received 429 from API', [\n 'team_id' => $this->config->team_id,\n 'config_id' => $this->config->getId(),\n 'retry_after' => $retryAfter,\n 'reason' => $e->getMessage(),\n ]);\n\n throw new RateLimitException('Hubspot returned 429', $retryAfter, $e);\n }\n\n throw $e;\n }\n }\n\n private function getRateLimitCacheKey(): string\n {\n return sprintf('hubspot:ratelimit:portal:%d', $this->config->getId());\n }\n\n public function isHubspotRateLimit(Throwable $e): bool\n {\n if ($e instanceof BadRequest\n || $e instanceof DealApiException\n || $e instanceof ContactApiException\n || $e instanceof CompanyApiException\n || $e instanceof \\GuzzleHttp\\Exception\\RequestException\n ) {\n return (int) $e->getCode() === 429;\n }\n\n return false;\n }\n\n public function parseRetryAfter(Throwable $e): int\n {\n if (method_exists($e, 'getResponseHeaders')) {\n $headers = $e->getResponseHeaders() ?: [];\n $value = $headers['Retry-After'] ?? $headers['retry-after'] ?? null;\n if (is_array($value)) {\n $value = $value[0] ?? null;\n }\n if (is_numeric($value)) {\n return (int) $value;\n }\n }\n\n $message = strtolower($e->getMessage()($e));\n\n if (str_contains($message, 'daily')) {\n return 600;\n }\n if (str_contains($message, 'ten secondly')) {\n return 10;\n }\n if (str_contains($message, 'secondly')) {\n return 1;\n }\n\n $this->log->warning('[Hubspot] No retry-after header or known message, using default', [\n 'exception_class' => get_class($e),\n 'message' => $message,\n ]);\n\n return 10;\n }\n\n public function parseMessage(Throwable $e): string\n {\n if (! method_exists($e, 'getResponseBody')) {\n return '';\n }\n\n $body = $e->getResponseBody();\n if (is_string($body)) {\n $body = json_decode($body, true) ?? [];\n }\n\n if (! is_array($body)) {\n return '';\n }\n\n return (string) ($body['message'] ?? '');\n }\n\n public function getMinimumApiVersion(): string\n {\n return self::MIN_API_VERSION;\n }\n\n public function getInstance(): Factory\n {\n return new Factory([\n 'key' => $this->accessToken,\n 'oauth2' => true,\n 'base_url' => $this->baseUrl,\n ]);\n }\n\n public function getNewInstance(): Discovery\n {\n return \\HubSpot\\Factory::createWithAccessToken($this->accessToken);\n }\n\n /**\n * Secondly and daily limits for Hubspot API\n *\n * Product Tier: Free & Starter | Professional & Enterprise | API add-on (any tier)\n * Burst: 100/10 seconds | 150/10 seconds | 200/10 seconds\n * Daily: 250,000 | 500,000 | 1,000,000\n *\n * Official documentation states: The search endpoints are rate limited to five requests per second.\n * Since with 5 RPS were still hitting secondly rate limits we lowered it to 4\n */\n public function getPaginatedData(array $payload, string $type, int $offset = 0): array\n {\n $total = 0;\n $lastId = null;\n $rows = [];\n foreach ($this->getPaginatedDataGenerator($payload, $type, $offset, $total, $lastId) as $row) {\n $rows[] = $row;\n }\n\n return ['results' => $rows, 'total' => $total, 'last_record' => $lastId];\n }\n\n /**\n * @throws HubspotException\n * @throws SocialAccountTokenInvalidException\n * @throws BadRequest\n */\n public function getPaginatedDataGenerator(\n array $payload,\n string $type,\n int $offset = 0,\n int &$total = 0,\n ?string &$lastRecordId = null\n ): \\Generator {\n return $this->paginationService->getPaginatedDataGenerator(\n $this,\n $payload,\n $type,\n $offset,\n $total,\n $lastRecordId\n );\n }\n\n /**\n * Execute a search request against HubSpot CRM objects with rate limiting.\n *\n * @param string $objectType The object type ('deals', 'companies', 'contacts', 'calls')\n * @param array<string, mixed> $payload The search payload with filters, sorts, properties, etc.\n * @return array The search response with 'results', 'total', 'paging' keys\n * @throws RateLimitException When rate limit is hit\n * @throws HubspotException On API errors\n */\n public function search(string $objectType, array $payload): array\n {\n $endpoint = self::BASE_URL . \"/crm/v3/objects/{$objectType}/search\";\n\n return $this->executeRequest(function () use ($endpoint, $payload) {\n $response = $this->getInstance()->getClient()->request('POST', $endpoint, ['json' => $payload]);\n\n return $response->toArray();\n });\n }\n\n /**\n * @throws DealApiException\n * @throws CrmException\n */\n public function getOpportunityById(string $crmId, array $fields): array\n {\n try {\n $deal = $this->getNewInstance()->crm()->deals()->basicApi()->getById(\n $crmId,\n implode(',', $fields),\n 'companies,contacts'\n );\n } catch (DealApiException $e) {\n $this->log->info('[Hubspot] Failed to fetch opportunity', [\n 'crm_id' => $crmId,\n 'reason' => $e->getMessage(),\n ]);\n\n throw $e;\n }\n\n if (! $deal instanceof DealWithAssociations) {\n throw new CrmException('Deal not found');\n }\n\n return [\n 'id' => $deal->getId(),\n 'properties' => $deal->getProperties(),\n 'associations' => $deal->getAssociations(),\n ];\n }\n\n /**\n * Generic batch read method for HubSpot objects\n *\n * @param string $objectType The object type ('deals', 'companies', 'contacts')\n * @param array<string> $crmIds Array of HubSpot object IDs (max 100)\n * @param array<string> $fields Array of property names to fetch\n *\n * @return array<string, array> Array keyed by CRM ID with object data\n */\n private function batchReadObjects(string $objectType, array $crmIds, array $fields): array\n {\n if (empty($crmIds)) {\n return [];\n }\n\n $this->validateBatchSize($objectType, $crmIds);\n $this->ensureValidToken();\n\n try {\n $batchConfig = $this->createBatchConfiguration($objectType);\n $batchReadRequest = $this->prepareBatchRequest($batchConfig, $crmIds, $fields);\n $response = $batchConfig['api']->read($batchReadRequest);\n\n $this->validateApiResponse($response, $objectType);\n\n $results = $this->processApiResults($response);\n $this->logBatchResults($objectType, $crmIds, $results);\n\n return $results;\n } catch (\\Throwable $e) {\n $this->handleBatchError($e, $objectType, $crmIds);\n }\n }\n\n private function validateBatchSize(string $objectType, array $crmIds): void\n {\n if (count($crmIds) > 100) {\n throw new \\InvalidArgumentException(\"Batch size cannot exceed 100 {$objectType}\");\n }\n }\n\n private function createBatchConfiguration(string $objectType): array\n {\n $configurations = [\n 'deals' => [\n 'batchReadRequest' => new \\HubSpot\\Client\\Crm\\Deals\\Model\\BatchReadInputSimplePublicObjectId(),\n 'inputClass' => \\HubSpot\\Client\\Crm\\Deals\\Model\\SimplePublicObjectId::class,\n 'api' => $this->getNewInstance()->crm()->deals()->batchApi(),\n ],\n 'companies' => [\n 'batchReadRequest' => new \\HubSpot\\Client\\Crm\\Companies\\Model\\BatchReadInputSimplePublicObjectId(),\n 'inputClass' => \\HubSpot\\Client\\Crm\\Companies\\Model\\SimplePublicObjectId::class,\n 'api' => $this->getNewInstance()->crm()->companies()->batchApi(),\n ],\n 'contacts' => [\n 'batchReadRequest' => new \\HubSpot\\Client\\Crm\\Contacts\\Model\\BatchReadInputSimplePublicObjectId(),\n 'inputClass' => \\HubSpot\\Client\\Crm\\Contacts\\Model\\SimplePublicObjectId::class,\n 'api' => $this->getNewInstance()->crm()->contacts()->batchApi(),\n ],\n ];\n\n if (! isset($configurations[$objectType])) {\n throw new \\InvalidArgumentException(\"Unsupported object type: {$objectType}\");\n }\n\n return $configurations[$objectType];\n }\n\n private function prepareBatchRequest(array $batchConfig, array $crmIds, array $fields): object\n {\n $batchReadRequest = $batchConfig['batchReadRequest'];\n $inputClass = $batchConfig['inputClass'];\n\n $inputs = array_map(function ($crmId) use ($inputClass) {\n $input = new $inputClass();\n $input->setId($crmId);\n\n return $input;\n }, $crmIds);\n\n $batchReadRequest->setInputs($inputs);\n $batchReadRequest->setProperties($fields);\n\n return $batchReadRequest;\n }\n\n private function validateApiResponse($response, string $objectType): void\n {\n if (! $response) {\n throw new CrmException(\"HubSpot API returned null response for {$objectType} batch read\");\n }\n }\n\n private function processApiResults($response): array\n {\n $results = [];\n $responseResults = $response->getResults();\n\n if ($responseResults) {\n foreach ($responseResults as $object) {\n if ($object && $object->getId()) {\n $results[$object->getId()] = [\n 'id' => $object->getId(),\n 'properties' => $object->getProperties() ?: [],\n ];\n }\n }\n }\n\n return $results;\n }\n\n private function logBatchResults(string $objectType, array $crmIds, array $results): void\n {\n $this->log->info(\"[HubSpot] Batch fetched {$objectType}\", [\n 'requested_count' => count($crmIds),\n 'returned_count' => count($results),\n 'crm_ids' => $crmIds,\n ]);\n }\n\n private function handleBatchError(\\Throwable $e, string $objectType, array $crmIds): void\n {\n $errorMessage = $e->getMessage() ?: 'Unknown error';\n $errorTrace = $e->getTraceAsString() ?: 'No trace available';\n\n $this->log->error(\"[HubSpot] Failed to batch fetch {$objectType}\", [\n 'crm_ids' => $crmIds,\n 'error' => $errorMessage,\n 'trace' => $errorTrace,\n ]);\n\n throw new CrmException(\"Failed to batch fetch {$objectType}: \" . $errorMessage);\n }\n\n /**\n * Batch read multiple opportunities by their CRM IDs\n *\n * @param array<string> $crmIds Array of HubSpot deal IDs (max 100)\n * @param array<string> $fields Array of property names to fetch\n *\n * @return array<string, array> Array keyed by CRM ID with opportunity data\n */\n public function getOpportunitiesByIds(array $crmIds, array $fields): array\n {\n return $this->batchReadObjects('deals', $crmIds, $fields);\n }\n\n /**\n * Batch read multiple companies by their CRM IDs\n *\n * @param array<string> $crmIds Array of HubSpot company IDs (max 100)\n * @param array<string> $fields Array of property names to fetch\n *\n * @return array<string, array> Array keyed by CRM ID with company data\n */\n public function getCompaniesByIds(array $crmIds, array $fields): array\n {\n return $this->batchReadObjects('companies', $crmIds, $fields);\n }\n\n /**\n * Batch read multiple contacts by their CRM IDs\n *\n * @param array<string> $crmIds Array of HubSpot contact IDs (max 100)\n * @param array<string> $fields Array of property names to fetch\n *\n * @return array<string, array> Array keyed by CRM ID with contact data\n */\n public function getContactsByIds(array $crmIds, array $fields): array\n {\n return $this->batchReadObjects('contacts', $crmIds, $fields);\n }\n\n /**\n * @throws CompanyApiException\n * @throws CrmException\n */\n public function getAccountById(string $crmId, array $fields): array\n {\n try {\n $company = $this->getNewInstance()->crm()->companies()->basicApi()->getById(\n $crmId,\n implode(',', $fields),\n );\n } catch (CompanyApiException $e) {\n $this->log->info('[Hubspot] Failed to fetch account', [\n 'crm_id' => $crmId,\n 'reason' => $e->getMessage(),\n ]);\n\n throw $e;\n }\n\n if (! $company instanceof CompaniesWithAssociations) {\n throw new CrmException('Account not found');\n }\n\n return [\n 'id' => $company->getId(),\n 'properties' => $company->getProperties(),\n ];\n }\n\n /**\n * @throws ContactApiException\n * @throws CrmException\n */\n public function getContactById(string $crmId, array $fields): array\n {\n try {\n $contact = $this->getNewInstance()->crm()->contacts()->basicApi()->getById(\n $crmId,\n implode(',', $fields)\n );\n } catch (ContactApiException $e) {\n $this->log->info('[Hubspot] Failed to fetch contact', [\n 'crm_id' => $crmId,\n 'reason' => $e->getMessage(),\n ]);\n\n throw $e;\n }\n\n if (! $contact instanceof ContactsWithAssociations) {\n throw new CrmException('Contact not found');\n }\n\n return [\n 'id' => $contact->getId(),\n 'properties' => $contact->getProperties(),\n ];\n }\n\n /**\n * This is email search request that Hubspot offers as GET (more generous quota)\n */\n public function getContactByEmail(string $email, array $fields = []): array\n {\n try {\n $contact = $this->getNewInstance()->crm()->contacts()->basicApi()->getById(\n $email,\n implode(',', $fields),\n null,\n false,\n 'email'\n );\n\n return [\n 'id' => $contact->getId(),\n 'properties' => $contact->getProperties(),\n ];\n } catch (ContactApiException $e) {\n $this->log->info('[Hubspot] Failed to fetch contact', [\n 'email' => $email,\n 'reason' => $e->getMessage(),\n ]);\n\n return [];\n }\n }\n\n /**\n * @throws CrmException\n */\n public function fetchProperty(string $objectType, string $propertyId): Property\n {\n $result = $this->getNewInstance()->crm()->properties()->coreApi()->getByName($objectType, $propertyId);\n\n if (! $result instanceof Property) {\n $this->log->error('[Hubspot] Failed to fetch property', [\n 'object_type' => $objectType,\n 'property_id' => $propertyId,\n 'reason' => $result->getMessage(),\n ]);\n\n throw new CrmException('Failed to fetch property');\n }\n\n return $result;\n }\n\n /**\n * @return array<CrmFieldOption>\n */\n public function fetchPropertyOptions(string $objectType, string $propertyId): array\n {\n /** @var array<CrmFieldOption> */\n return $this->fetchProperty($objectType, $propertyId)->getOptions();\n }\n\n /**\n * @return array<array{id:string, label:string, deleted:bool}>\n */\n public function fetchCallDispositions(): array\n {\n /** @var Response $response */\n $response = $this->getInstance()->engagements()->getCallDispositions();\n\n /**\n * @var array<array{\n * id:string,\n * label:string,\n * deleted: bool\n * }>\n */\n return $response->toArray();\n }\n\n /**\n * @return array<CrmFieldOption>\n */\n public function fetchOpportunityPipelineStages(): array\n {\n $stages = [];\n $apiResponse = $this->getNewInstance()->crm()->pipelines()->pipelinesApi()->getAll('deals');\n\n if ($apiResponse instanceof Error) {\n $this->log->error('[Hubspot] Failed to fetch opportunity pipelines', [\n 'reason' => $apiResponse->getMessage(),\n ]);\n\n return [];\n }\n\n foreach ($apiResponse->getResults() as $pipeline) {\n $pipelineStages = array_map(\n static function (PipelineStage $stage) {\n return [\n 'id' => $stage->getId(),\n 'label' => $stage->getLabel(),\n ];\n },\n $pipeline->getStages()\n );\n\n $stages = array_merge($stages, $pipelineStages);\n }\n\n return $stages;\n }\n\n public function fetchOpportunityPipelines(): array\n {\n $pipelines = [];\n\n try {\n $apiResponse = $this->makeRequest('/crm/v3/pipelines/deals');\n } catch (\\Exception $e) {\n $this->log->info('[Hubspot] Failed to fetch opportunity pipelines', [\n 'reason' => $e->getMessage(),\n ]);\n\n return [];\n }\n\n $response = $apiResponse->toArray();\n\n foreach ($response['results'] as $pipeline) {\n $pipelines[] = [\n 'id' => $pipeline['id'],\n 'label' => $pipeline['label'],\n ];\n }\n\n return $pipelines;\n }\n\n /**\n * @return array<CrmFieldOption>\n */\n public function fetchMeetingOutcomeFieldOptions(Field $field): array\n {\n return $field->getCrmProviderId() === 'meetingOutcome'\n ? $this->fetchMeetingOutcomeTypes()\n : $this->fetchCallActivityTypes();\n }\n\n public function fetchMeetingOutcomeTypes(): array\n {\n return $this->extractMeetingTypeOptions(\n 'https://api.hubapi.com/crm/v3/properties/meeting/hs_meeting_outcome'\n );\n }\n\n public function fetchCallActivityTypes(): array\n {\n return $this->extractMeetingTypeOptions(\n 'https://api.hubapi.com/crm/v3/properties/call/hs_activity_type'\n );\n }\n\n private function extractMeetingTypeOptions(string $endpoint): array\n {\n /** @var Response $response */\n $response = $this->getInstance()\n ->getClient()\n ->request('GET', $endpoint);\n\n /**\n * @var array<array{\n * value: string,\n * label: string,\n * displayOrder: int\n * }> $optionData\n */\n $optionData = $response->toArray()['options'] ?? [];\n\n $options = [];\n foreach ($optionData as $item) {\n $options[] = [\n 'id' => $item['value'],\n 'value' => $item['value'],\n 'label' => $item['label'],\n 'display_order' => $item['displayOrder'],\n ];\n }\n\n return $options;\n }\n\n /**\n * @return array<CrmFieldOption>\n */\n public function fetchDispositionFieldOptions(): array\n {\n $options = [];\n\n $dispositions = $this->fetchCallDispositions();\n\n foreach ($dispositions as $disposition) {\n if ($disposition['deleted'] !== false) {\n continue;\n }\n\n $option['value'] = $disposition['id'];\n $option['id'] = $disposition['id'];\n $option['label'] = $disposition['label'];\n\n $options[] = $option;\n }\n\n return $options;\n }\n\n /**\n * @return array<CrmFieldOption>\n */\n public function fetchOpportunityFieldOptions(Field $field): array\n {\n if ($field->isStageField()) {\n return $this->fetchOpportunityPipelineStages();\n }\n\n if ($field->isPipelineField()) {\n return $this->fetchOpportunityPipelines();\n }\n\n return $this->fetchPropertyOptions('deals', $field->getCrmProviderId());\n }\n\n /**\n * @throws BadRequest\n * @throws HubspotException\n */\n public function makeRequest(string $endpoint, $method = 'GET', $payload = [], ?string $queryString = null)\n {\n $endpoint = self::BASE_URL . $endpoint;\n\n if ($method === 'GET') {\n return $this->getInstance()->getClient()?->request(\n method: $method,\n endpoint: $endpoint,\n query_string: $queryString\n );\n } else {\n return $this->getInstance()->getClient()->request($method, $endpoint, [\n 'json' => ($payload),\n ]);\n }\n }\n\n /**\n * @throws BadRequest\n * @throws HubspotException\n */\n public function createMeeting(array $payload): Response\n {\n $endpoint = '/crm/v3/objects/meetings';\n\n return $this->makeRequest($endpoint, 'POST', $payload);\n }\n\n /**\n * @throws BadRequest\n * @throws HubspotException\n */\n public function updateMeeting(string $meetingId, array $payload): Response\n {\n $endpoint = '/crm/v3/objects/meetings/' . $meetingId;\n\n return $this->makeRequest($endpoint, 'PATCH', $payload);\n }\n\n /**\n * @throws \\Exception\n */\n public function createNote(\n string $body,\n string $ownerId,\n int $timestamp,\n string $objectId,\n NoteObject $noteObject\n ): ?string {\n try {\n $noteInput = new SimplePublicObjectInput([\n 'properties' => [\n 'hs_note_body' => $body,\n 'hubspot_owner_id' => $ownerId,\n 'hs_timestamp' => $timestamp,\n ],\n ]);\n\n // Create note\n $note = $this->getNewInstance()->crm()->objects()->basicApi()->create('note', $noteInput);\n\n $this->getNewInstance()->crm()->objects()->associationsApi()->create(\n 'note',\n $note->getId(),\n $this->getNoteObject($noteObject),\n $objectId,\n $this->getNoteAssociationType($noteObject),\n );\n\n return $note->getId();\n } catch (\\Exception $e) {\n $this->log->error('[Hubspot] Failed to create note', [\n 'objectId' => $objectId,\n 'noteObject' => $noteObject->getObjectType(),\n 'reason' => $e->getMessage(),\n ]);\n\n \\Sentry::captureException($e);\n }\n\n return null;\n }\n\n public function updateEngagement(string $objectId, array $engagement, array $metadata): void\n {\n $this->getInstance()->engagements()->update($objectId, $engagement, $metadata);\n }\n\n public function getEngagementData(string $engagementId): array\n {\n $engagement = $this->getInstance()->engagements()->get($engagementId);\n\n return $engagement->toArray();\n }\n\n public function createEngagement(array $engagement, array $associations, array $metadata): Response\n {\n return $this->getInstance()\n ->engagements()\n ->create($engagement, $associations, $metadata);\n }\n\n public function isUnauthorizedException(\\Exception $e): bool\n {\n // Check for specific HubSpot API exception types first\n if ($e instanceof BadRequest) {\n // BadRequest can contain 401 status codes\n return $e->getCode() === 401;\n }\n\n // Check for HTTP client exceptions with status codes\n if ($e instanceof \\GuzzleHttp\\Exception\\RequestException && $e->hasResponse()) {\n $response = $e->getResponse();\n if ($response !== null) {\n return $response->getStatusCode() === 401;\n }\n }\n\n // Check for Guzzle HTTP exceptions\n if ($e instanceof \\GuzzleHttp\\Exception\\ClientException) {\n return $e->getCode() === 401;\n }\n\n // Fallback to string matching as last resort, but be more specific\n $message = strtolower($e->getMessage());\n\n return str_contains($message, '401 unauthorized') ||\n str_contains($message, 'http 401') ||\n str_contains($message, 'status code 401') ||\n (preg_match('/\\b401\\b/', $message) && str_contains($message, 'unauthorized'));\n }\n\n /**\n * Validates and refreshes the access token if needed before API requests.\n * This ensures long-running processes don't fail due to token expiration.\n *\n * @throws SocialAccountTokenInvalidException\n */\n public function ensureValidToken(): void\n {\n if ($this->oauthAccount === null) {\n return;\n }\n\n $newToken = $this->tokenManager->ensureValidToken($this->oauthAccount);\n if ($newToken !== null) {\n $this->accessToken = $newToken;\n }\n }\n\n public function getConfig()\n {\n return $this->config;\n }\n\n // returns only active (archived=false)\n public function getOwners(): array\n {\n return $this->getNewInstance()->crm()->owners()->getAll();\n }\n\n /**\n * @param bool $archived\n *\n * @return array<Owner>|[]\n */\n public function getOwnersArchived(bool $archived = true): array\n {\n $endpoint = '/crm/v3/owners';\n $queryParams = [\n 'archived' => $archived ? 'true' : 'false',\n ];\n $queryString = http_build_query($queryParams);\n\n $owners = [];\n\n try {\n $response = $this->makeRequest(endpoint: $endpoint, queryString: $queryString);\n $responseData = $response?->toArray();\n\n foreach ($responseData['results'] as $result) {\n try {\n $owners[] = Owner::create($result);\n } catch (Throwable $e) {\n $this->log->error('[HubSpot] Failed to process owner data', [\n 'result' => $result,\n 'error' => $e->getMessage(),\n ]);\n\n continue;\n }\n }\n } catch (Throwable $e) {\n $this->log->error('HubSpot] Failed to fetch owners', [\n 'archived' => $archived,\n 'error' => $e->getMessage(),\n ]);\n\n return [];\n }\n\n return $owners;\n }\n\n public function getMeeting(string $engagementId): ObjectWithAssociations\n {\n return $this->getNewInstance()->crm()->objects()->basicApi()\n ->getById('meeting', $engagementId, null, 'contact,company,deal');\n }\n\n public function deleteEngagement(string $engagementId): void\n {\n $this->getInstance()->engagements()->delete((int) $engagementId);\n }\n\n public function getAssociationsData(array $ids, string $fromObject, string $toObject): array\n {\n $associationData = [];\n $idChunks = array_chunk($ids, self::ASSOCIATIONS_BATCH_SIZE_LIMIT);\n\n foreach ($idChunks as $idChunk) {\n try {\n $batchInput = new \\HubSpot\\Client\\Crm\\Associations\\Model\\BatchInputPublicObjectId();\n $batchInput->setInputs(array_map(function ($id) {\n $publicObjectId = new \\HubSpot\\Client\\Crm\\Associations\\Model\\PublicObjectId();\n $publicObjectId->setId($id);\n\n return $publicObjectId;\n }, $idChunk));\n\n $associatedObjectsData = $this\n ->getNewInstance()\n ->crm()\n ->associations()\n ->batchApi()\n ->read($fromObject, $toObject, $batchInput);\n\n if ($associatedObjectsData instanceof \\HubSpot\\Client\\Crm\\Associations\\Model\\BatchResponsePublicAssociationMulti) {\n foreach ($associatedObjectsData->getResults() as $association) {\n $from = $association->getFrom()->getId();\n $toAssociations = $association->getTo();\n\n if (! empty($toAssociations)) {\n $associationData[$from] = array_map(function ($item) {\n return $item->getId();\n }, $toAssociations);\n }\n }\n }\n// } catch (RateLimitException $e) {\n// throw $e;\n } catch (\\Exception $e) {\n $this->log->error('[Hubspot] Failed to fetch associations', [\n 'from_object' => $fromObject,\n 'to_object' => $toObject,\n 'reason' => $e->getMessage(),\n ]);\n }\n }\n\n return $associationData;\n }\n\n /**\n * @throws \\Exception\n */\n private function getNoteAssociationType(NoteObject $noteObject): string\n {\n return match($noteObject) {\n NoteObject::Opportunity => 'note_to_deal',\n NoteObject::Lead, NoteObject::Contact => 'note_to_contact', // or 'note_to_lead' if your portal supports it\n NoteObject::Account => 'note_to_company',\n NoteObject::Call, NoteObject::Event => throw new \\Exception('Not supported'),\n };\n }\n\n /**\n * @throws \\Exception\n */\n private function getNoteObject(NoteObject $noteObject): string\n {\n return match($noteObject) {\n NoteObject::Opportunity => 'deal',\n NoteObject::Lead, NoteObject::Contact => 'contact',\n NoteObject::Account => 'company',\n NoteObject::Call, NoteObject::Event => throw new \\Exception('Not supported'),\n };\n }\n\n public function addAssociations(string $objectType, string $associationType, array $payload): Response\n {\n $endpoint = \"/crm/v4/associations/$objectType/$associationType/batch/create\";\n\n return $this->makeRequest($endpoint, 'POST', $payload);\n }\n\n public function removeAssociations(string $objectType, string $associationType, array $payload): Response\n {\n $endpoint = \"/crm/v4/associations/$objectType/$associationType/batch/archive\";\n\n return $this->makeRequest($endpoint, 'POST', $payload);\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":true,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Show Replace Field","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Search History","depth":3,"on_screen":true,"role_description":"checkbox","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"429","depth":4,"on_screen":true,"value":"429","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"New Line","depth":3,"on_screen":true,"role_description":"checkbox","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Match Case","depth":3,"on_screen":true,"role_description":"checkbox","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Words","depth":3,"on_screen":true,"role_description":"checkbox","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Regex","depth":3,"on_screen":true,"role_description":"checkbox","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Replace History","depth":3,"bounds":{"left":0.0,"top":0.0,"width":0.015277778,"height":0.024444444},"on_screen":false,"role_description":"checkbox","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextField","text":"Replace","depth":4,"on_screen":false,"role_description":"text field","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"New Line","depth":3,"bounds":{"left":0.0,"top":0.0,"width":0.015277778,"height":0.024444444},"on_screen":false,"role_description":"checkbox","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Preserve case","depth":3,"bounds":{"left":0.0,"top":0.0,"width":0.015277778,"height":0.024444444},"on_screen":false,"role_description":"checkbox","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"1/4","depth":4,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Occurrence","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Next Occurrence","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Filter Search Results","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Open in Window, Multiple Cursors","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Click to highlight","depth":4,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.088194445,"height":0.027777778},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"54","depth":4,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Next Highlighted Error","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"[2026-05-11 11:08:45] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"43b1fb67-9aac-4fc6-9ced-689ecda5c548\",\"trace_id\":\"60028d0e-dcd8-496a-a7ba-3a04b8d646e2\"}\n[2026-05-11 11:08:45] local.INFO: [Commands/AsyncUpdateEsEntities] Starting ES update worker {\"pid\":72650,\"workerId\":\"\",\"target\":\"activities\"} {\"correlation_id\":\"6d49ffdc-2ed7-4eae-a1ee-e25ca95bbea8\",\"trace_id\":\"906573b5-005c-4820-8a32-3b0703ea86dd\"}\n[2026-05-11 11:08:46] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"43b1fb67-9aac-4fc6-9ced-689ecda5c548\",\"trace_id\":\"60028d0e-dcd8-496a-a7ba-3a04b8d646e2\"}\n[2026-05-11 11:09:12] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":615092,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"correlation_id\":\"f33d47cb-76c6-4c27-a641-48cbf69e623d\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:12] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":615092} {\"correlation_id\":\"f33d47cb-76c6-4c27-a641-48cbf69e623d\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:12] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":615092,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"f33d47cb-76c6-4c27-a641-48cbf69e623d\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:12] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":615092,\"participants\":[{\"id\":1004102,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":1004103,\"user_id\":89,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"f33d47cb-76c6-4c27-a641-48cbf69e623d\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:12] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f33d47cb-76c6-4c27-a641-48cbf69e623d\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:12] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f33d47cb-76c6-4c27-a641-48cbf69e623d\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:12] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"f33d47cb-76c6-4c27-a641-48cbf69e623d\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:12] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"f33d47cb-76c6-4c27-a641-48cbf69e623d\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:12] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"f33d47cb-76c6-4c27-a641-48cbf69e623d\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:13] local.INFO: [Hubspot] Failed to fetch contact {\"email\":\"nikolay.nikolov@jiminny.com\",\"reason\":\"[404] Client error: `GET https://api.hubapi.com/crm/v3/objects/contacts/nikolay.nikolov%40jiminny.com?properties=email%2Cfirstname%2Clastname%2Ccountry%2Cphone%2Cmobilephone%2Cjobtitle%2Chubspot_owner_id%2Cassociatedcompanyid%2Cphoto&archived=0&idProperty=email` resulted in a `404 Not Found` response\"} {\"correlation_id\":\"f33d47cb-76c6-4c27-a641-48cbf69e623d\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:13] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"f33d47cb-76c6-4c27-a641-48cbf69e623d\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:13] local.WARNING: [Hubspot] No retry-after header or known message, using default {\"exception_class\":\"SevenShores\\\\Hubspot\\\\Exceptions\\\\BadRequest\",\"message\":\"\"} {\"correlation_id\":\"f33d47cb-76c6-4c27-a641-48cbf69e623d\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:13] local.WARNING: [Hubspot] Received 429 from API {\"team_id\":2,\"config_id\":2,\"retry_after\":10,\"message\":\"\",\"reason\":\"Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response:\n{\\\"status\\\":\\\"error\\\",\\\"message\\\":\\\"You have reached your secondly limit.\\\",\\\"errorType\\\":\\\"RATE_LIMIT\\\",\\\"correlationId\\\":\\\"019e16ba-1 (truncated...)\n\"} {\"correlation_id\":\"f33d47cb-76c6-4c27-a641-48cbf69e623d\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:13] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":10,\"delay\":12} {\"correlation_id\":\"f33d47cb-76c6-4c27-a641-48cbf69e623d\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":614436,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"correlation_id\":\"ccafe863-7885-4971-96fb-87ef6dd4adf3\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614436} {\"correlation_id\":\"ccafe863-7885-4971-96fb-87ef6dd4adf3\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614436,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ccafe863-7885-4971-96fb-87ef6dd4adf3\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":614436,\"participants\":[{\"id\":1002751,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":1002752,\"user_id\":89,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"ccafe863-7885-4971-96fb-87ef6dd4adf3\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ccafe863-7885-4971-96fb-87ef6dd4adf3\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ccafe863-7885-4971-96fb-87ef6dd4adf3\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ccafe863-7885-4971-96fb-87ef6dd4adf3\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ccafe863-7885-4971-96fb-87ef6dd4adf3\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"ccafe863-7885-4971-96fb-87ef6dd4adf3\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"ccafe863-7885-4971-96fb-87ef6dd4adf3\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":10,\"delay\":10} {\"correlation_id\":\"ccafe863-7885-4971-96fb-87ef6dd4adf3\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":614382,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"correlation_id\":\"f00a4506-adfe-4fdc-b932-e6d2bc751fde\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614382} {\"correlation_id\":\"f00a4506-adfe-4fdc-b932-e6d2bc751fde\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614382,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"f00a4506-adfe-4fdc-b932-e6d2bc751fde\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":614382,\"participants\":[{\"id\":1002632,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":1002633,\"user_id\":89,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"f00a4506-adfe-4fdc-b932-e6d2bc751fde\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f00a4506-adfe-4fdc-b932-e6d2bc751fde\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f00a4506-adfe-4fdc-b932-e6d2bc751fde\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"f00a4506-adfe-4fdc-b932-e6d2bc751fde\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"f00a4506-adfe-4fdc-b932-e6d2bc751fde\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"f00a4506-adfe-4fdc-b932-e6d2bc751fde\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"f00a4506-adfe-4fdc-b932-e6d2bc751fde\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":10,\"delay\":12} {\"correlation_id\":\"f00a4506-adfe-4fdc-b932-e6d2bc751fde\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":614381,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"correlation_id\":\"36bd73f5-17f9-4f70-8254-2214543c7f8e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614381} {\"correlation_id\":\"36bd73f5-17f9-4f70-8254-2214543c7f8e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614381,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"36bd73f5-17f9-4f70-8254-2214543c7f8e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":614381,\"participants\":[{\"id\":1002630,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":1002631,\"user_id\":89,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"36bd73f5-17f9-4f70-8254-2214543c7f8e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"36bd73f5-17f9-4f70-8254-2214543c7f8e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"36bd73f5-17f9-4f70-8254-2214543c7f8e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"36bd73f5-17f9-4f70-8254-2214543c7f8e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"36bd73f5-17f9-4f70-8254-2214543c7f8e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"36bd73f5-17f9-4f70-8254-2214543c7f8e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"36bd73f5-17f9-4f70-8254-2214543c7f8e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":10,\"delay\":10} {\"correlation_id\":\"36bd73f5-17f9-4f70-8254-2214543c7f8e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":614378,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":6167,\"account_id\":null,\"opportunity_id\":null,\"stage_id\":null}} {\"correlation_id\":\"a4a3a058-ec22-4f04-bb14-a9bff18ce214\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614378} {\"correlation_id\":\"a4a3a058-ec22-4f04-bb14-a9bff18ce214\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614378,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a4a3a058-ec22-4f04-bb14-a9bff18ce214\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":614378,\"participants\":[{\"id\":1002623,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":1002624,\"user_id\":null,\"contact_id\":6167,\"lead_id\":null},{\"id\":1002625,\"user_id\":89,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"a4a3a058-ec22-4f04-bb14-a9bff18ce214\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a4a3a058-ec22-4f04-bb14-a9bff18ce214\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a4a3a058-ec22-4f04-bb14-a9bff18ce214\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"a4a3a058-ec22-4f04-bb14-a9bff18ce214\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"a4a3a058-ec22-4f04-bb14-a9bff18ce214\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"a4a3a058-ec22-4f04-bb14-a9bff18ce214\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"a4a3a058-ec22-4f04-bb14-a9bff18ce214\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":10,\"delay\":12} {\"correlation_id\":\"a4a3a058-ec22-4f04-bb14-a9bff18ce214\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613840,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613840} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613840,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613840,\"participants\":[{\"id\":1001764,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1001765,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":261} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":299} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613840,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613840,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613840} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613840,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613840,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"d86caa21-8980-460b-b2be-88292956cdb3\",\"trace_id\":\"6f80ed90-fa59-444e-a016-33a62019c6a4\"}\n[2026-05-11 11:09:15] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613833,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"ed230e3b-8ded-4591-bfe7-d4ead6f411c1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613833} {\"correlation_id\":\"ed230e3b-8ded-4591-bfe7-d4ead6f411c1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613833,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ed230e3b-8ded-4591-bfe7-d4ead6f411c1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613833,\"participants\":[{\"id\":1001750,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1001751,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"ed230e3b-8ded-4591-bfe7-d4ead6f411c1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"d86caa21-8980-460b-b2be-88292956cdb3\",\"trace_id\":\"6f80ed90-fa59-444e-a016-33a62019c6a4\"}\n[2026-05-11 11:09:15] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"d86caa21-8980-460b-b2be-88292956cdb3\",\"trace_id\":\"6f80ed90-fa59-444e-a016-33a62019c6a4\"}\n[2026-05-11 11:09:15] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ed230e3b-8ded-4591-bfe7-d4ead6f411c1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ed230e3b-8ded-4591-bfe7-d4ead6f411c1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ed230e3b-8ded-4591-bfe7-d4ead6f411c1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ed230e3b-8ded-4591-bfe7-d4ead6f411c1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"ed230e3b-8ded-4591-bfe7-d4ead6f411c1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613833,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"ed230e3b-8ded-4591-bfe7-d4ead6f411c1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613833,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"ed230e3b-8ded-4591-bfe7-d4ead6f411c1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613833} {\"correlation_id\":\"ed230e3b-8ded-4591-bfe7-d4ead6f411c1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613833,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ed230e3b-8ded-4591-bfe7-d4ead6f411c1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613833,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"ed230e3b-8ded-4591-bfe7-d4ead6f411c1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613827,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"d165f8f2-23f6-4f9a-90e7-7b600066818c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613827} {\"correlation_id\":\"d165f8f2-23f6-4f9a-90e7-7b600066818c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613827,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d165f8f2-23f6-4f9a-90e7-7b600066818c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613827,\"participants\":[{\"id\":1001734,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1001735,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"d165f8f2-23f6-4f9a-90e7-7b600066818c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d165f8f2-23f6-4f9a-90e7-7b600066818c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d165f8f2-23f6-4f9a-90e7-7b600066818c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"d165f8f2-23f6-4f9a-90e7-7b600066818c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"d165f8f2-23f6-4f9a-90e7-7b600066818c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"d165f8f2-23f6-4f9a-90e7-7b600066818c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613827,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"d165f8f2-23f6-4f9a-90e7-7b600066818c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613827,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"d165f8f2-23f6-4f9a-90e7-7b600066818c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613827} {\"correlation_id\":\"d165f8f2-23f6-4f9a-90e7-7b600066818c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613827,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d165f8f2-23f6-4f9a-90e7-7b600066818c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613827,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"d165f8f2-23f6-4f9a-90e7-7b600066818c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613826,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"1816f96e-c36b-474a-8f46-bc8c71bb0079\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613826} {\"correlation_id\":\"1816f96e-c36b-474a-8f46-bc8c71bb0079\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613826,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1816f96e-c36b-474a-8f46-bc8c71bb0079\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613826,\"participants\":[{\"id\":1001732,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1001733,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"1816f96e-c36b-474a-8f46-bc8c71bb0079\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1816f96e-c36b-474a-8f46-bc8c71bb0079\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1816f96e-c36b-474a-8f46-bc8c71bb0079\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1816f96e-c36b-474a-8f46-bc8c71bb0079\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1816f96e-c36b-474a-8f46-bc8c71bb0079\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"1816f96e-c36b-474a-8f46-bc8c71bb0079\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613826,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"1816f96e-c36b-474a-8f46-bc8c71bb0079\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613826,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"1816f96e-c36b-474a-8f46-bc8c71bb0079\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613826} {\"correlation_id\":\"1816f96e-c36b-474a-8f46-bc8c71bb0079\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613826,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1816f96e-c36b-474a-8f46-bc8c71bb0079\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613826,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"1816f96e-c36b-474a-8f46-bc8c71bb0079\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613820,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"a2b1cf94-6665-4574-a821-fcd845d290dc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613820} {\"correlation_id\":\"a2b1cf94-6665-4574-a821-fcd845d290dc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613820,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a2b1cf94-6665-4574-a821-fcd845d290dc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613820,\"participants\":[{\"id\":1001721,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1001722,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"a2b1cf94-6665-4574-a821-fcd845d290dc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a2b1cf94-6665-4574-a821-fcd845d290dc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a2b1cf94-6665-4574-a821-fcd845d290dc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"a2b1cf94-6665-4574-a821-fcd845d290dc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"a2b1cf94-6665-4574-a821-fcd845d290dc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"a2b1cf94-6665-4574-a821-fcd845d290dc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613820,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"a2b1cf94-6665-4574-a821-fcd845d290dc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613820,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"a2b1cf94-6665-4574-a821-fcd845d290dc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613820} {\"correlation_id\":\"a2b1cf94-6665-4574-a821-fcd845d290dc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613820,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a2b1cf94-6665-4574-a821-fcd845d290dc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613820,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"a2b1cf94-6665-4574-a821-fcd845d290dc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613818,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"7194ba37-7af3-4aa0-80a3-14b38431fd39\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613818} {\"correlation_id\":\"7194ba37-7af3-4aa0-80a3-14b38431fd39\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613818,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7194ba37-7af3-4aa0-80a3-14b38431fd39\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613818,\"participants\":[{\"id\":1001717,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1001718,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"7194ba37-7af3-4aa0-80a3-14b38431fd39\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7194ba37-7af3-4aa0-80a3-14b38431fd39\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7194ba37-7af3-4aa0-80a3-14b38431fd39\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7194ba37-7af3-4aa0-80a3-14b38431fd39\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"7194ba37-7af3-4aa0-80a3-14b38431fd39\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"7194ba37-7af3-4aa0-80a3-14b38431fd39\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613818,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"7194ba37-7af3-4aa0-80a3-14b38431fd39\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613818,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"7194ba37-7af3-4aa0-80a3-14b38431fd39\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613818} {\"correlation_id\":\"7194ba37-7af3-4aa0-80a3-14b38431fd39\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613818,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7194ba37-7af3-4aa0-80a3-14b38431fd39\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613818,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"7194ba37-7af3-4aa0-80a3-14b38431fd39\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613812,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"1fe899e0-6ad7-4159-b5f9-6f34b32d31d6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613812} {\"correlation_id\":\"1fe899e0-6ad7-4159-b5f9-6f34b32d31d6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613812,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1fe899e0-6ad7-4159-b5f9-6f34b32d31d6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613812,\"participants\":[{\"id\":1001705,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1001706,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"1fe899e0-6ad7-4159-b5f9-6f34b32d31d6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1fe899e0-6ad7-4159-b5f9-6f34b32d31d6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1fe899e0-6ad7-4159-b5f9-6f34b32d31d6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1fe899e0-6ad7-4159-b5f9-6f34b32d31d6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1fe899e0-6ad7-4159-b5f9-6f34b32d31d6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"1fe899e0-6ad7-4159-b5f9-6f34b32d31d6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613812,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"1fe899e0-6ad7-4159-b5f9-6f34b32d31d6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613812,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"1fe899e0-6ad7-4159-b5f9-6f34b32d31d6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613812} {\"correlation_id\":\"1fe899e0-6ad7-4159-b5f9-6f34b32d31d6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613812,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1fe899e0-6ad7-4159-b5f9-6f34b32d31d6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613812,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"1fe899e0-6ad7-4159-b5f9-6f34b32d31d6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613807,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4484,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613807} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613807,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613807,\"participants\":[{\"id\":1001690,\"user_id\":253,\"contact_id\":null,\"lead_id\":null},{\"id\":1001691,\"user_id\":null,\"contact_id\":4484,\"lead_id\":null}]} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613807,\"team_id\":2,\"email\":\"preslava.ivanova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":243,\"contact_id\":4484,\"owner_id\":253} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":243,\"contact_id\":4484} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":243,\"contact_id\":4484,\"opportunity_id\":276} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":1.06,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"6d49ffdc-2ed7-4eae-a1ee-e25ca95bbea8\",\"trace_id\":\"906573b5-005c-4820-8a32-3b0703ea86dd\"}\n[2026-05-11 11:09:17] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"tsvetomir.banovski@gmail.com\"} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613807,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613807} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613807,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613807,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4484,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613806,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34}} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613806} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613806,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613806,\"participants\":[{\"id\":1001688,\"user_id\":253,\"contact_id\":null,\"lead_id\":null},{\"id\":1001689,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null}]} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613806,\"team_id\":2,\"email\":\"preslava.ivanova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":253} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":244,\"contact_id\":4487} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":350} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613806,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613806} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613806,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613806,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613805,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34}} {\"correlation_id\":\"e6a724a6-dc6e-4440-ab48-641336d6ca17\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613805} {\"correlation_id\":\"e6a724a6-dc6e-4440-ab48-641336d6ca17\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613805,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e6a724a6-dc6e-4440-ab48-641336d6ca17\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613805,\"participants\":[{\"id\":1001686,\"user_id\":253,\"contact_id\":null,\"lead_id\":null},{\"id\":1001687,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null}]} {\"correlation_id\":\"e6a724a6-dc6e-4440-ab48-641336d6ca17\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e6a724a6-dc6e-4440-ab48-641336d6ca17\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e6a724a6-dc6e-4440-ab48-641336d6ca17\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"e6a724a6-dc6e-4440-ab48-641336d6ca17\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"e6a724a6-dc6e-4440-ab48-641336d6ca17\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613805,\"team_id\":2,\"email\":\"preslava.ivanova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"e6a724a6-dc6e-4440-ab48-641336d6ca17\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"e6a724a6-dc6e-4440-ab48-641336d6ca17\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613805,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"e6a724a6-dc6e-4440-ab48-641336d6ca17\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613805} {\"correlation_id\":\"e6a724a6-dc6e-4440-ab48-641336d6ca17\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613805,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e6a724a6-dc6e-4440-ab48-641336d6ca17\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613805,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34} {\"correlation_id\":\"e6a724a6-dc6e-4440-ab48-641336d6ca17\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613698,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"67158d25-23dc-4314-8813-caa3c43fa3f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613698} {\"correlation_id\":\"67158d25-23dc-4314-8813-caa3c43fa3f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613698,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"67158d25-23dc-4314-8813-caa3c43fa3f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613698,\"participants\":[{\"id\":1001667,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1001668,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"67158d25-23dc-4314-8813-caa3c43fa3f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"67158d25-23dc-4314-8813-caa3c43fa3f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"67158d25-23dc-4314-8813-caa3c43fa3f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"67158d25-23dc-4314-8813-caa3c43fa3f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"67158d25-23dc-4314-8813-caa3c43fa3f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"67158d25-23dc-4314-8813-caa3c43fa3f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613698,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"67158d25-23dc-4314-8813-caa3c43fa3f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613698,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"67158d25-23dc-4314-8813-caa3c43fa3f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613698} {\"correlation_id\":\"67158d25-23dc-4314-8813-caa3c43fa3f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613698,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"67158d25-23dc-4314-8813-caa3c43fa3f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613698,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"67158d25-23dc-4314-8813-caa3c43fa3f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613697,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"8d2a290e-88e6-494a-91c2-f63f0338f30f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613697} {\"correlation_id\":\"8d2a290e-88e6-494a-91c2-f63f0338f30f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613697,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8d2a290e-88e6-494a-91c2-f63f0338f30f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613697,\"participants\":[{\"id\":1001665,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1001666,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"8d2a290e-88e6-494a-91c2-f63f0338f30f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8d2a290e-88e6-494a-91c2-f63f0338f30f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8d2a290e-88e6-494a-91c2-f63f0338f30f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"8d2a290e-88e6-494a-91c2-f63f0338f30f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"8d2a290e-88e6-494a-91c2-f63f0338f30f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"8d2a290e-88e6-494a-91c2-f63f0338f30f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613697,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"8d2a290e-88e6-494a-91c2-f63f0338f30f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613697,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"8d2a290e-88e6-494a-91c2-f63f0338f30f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613697} {\"correlation_id\":\"8d2a290e-88e6-494a-91c2-f63f0338f30f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613697,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8d2a290e-88e6-494a-91c2-f63f0338f30f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613697,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"8d2a290e-88e6-494a-91c2-f63f0338f30f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613696,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"d1c50e93-0488-4315-a739-f89181b77d87\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613696} {\"correlation_id\":\"d1c50e93-0488-4315-a739-f89181b77d87\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613696,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d1c50e93-0488-4315-a739-f89181b77d87\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613696,\"participants\":[{\"id\":1001663,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1001664,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"d1c50e93-0488-4315-a739-f89181b77d87\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d1c50e93-0488-4315-a739-f89181b77d87\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d1c50e93-0488-4315-a739-f89181b77d87\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"d1c50e93-0488-4315-a739-f89181b77d87\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"d1c50e93-0488-4315-a739-f89181b77d87\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"d1c50e93-0488-4315-a739-f89181b77d87\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613696,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"d1c50e93-0488-4315-a739-f89181b77d87\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613696,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"d1c50e93-0488-4315-a739-f89181b77d87\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613696} {\"correlation_id\":\"d1c50e93-0488-4315-a739-f89181b77d87\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613696,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d1c50e93-0488-4315-a739-f89181b77d87\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613696,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"d1c50e93-0488-4315-a739-f89181b77d87\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613695,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"6dbd1e2c-b89e-47b6-9c2f-d9d7a56b5383\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613695} {\"correlation_id\":\"6dbd1e2c-b89e-47b6-9c2f-d9d7a56b5383\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613695,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"6dbd1e2c-b89e-47b6-9c2f-d9d7a56b5383\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613695,\"participants\":[{\"id\":1001661,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1001662,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"6dbd1e2c-b89e-47b6-9c2f-d9d7a56b5383\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"6dbd1e2c-b89e-47b6-9c2f-d9d7a56b5383\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"6dbd1e2c-b89e-47b6-9c2f-d9d7a56b5383\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"6dbd1e2c-b89e-47b6-9c2f-d9d7a56b5383\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"6dbd1e2c-b89e-47b6-9c2f-d9d7a56b5383\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"6dbd1e2c-b89e-47b6-9c2f-d9d7a56b5383\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613695,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"6dbd1e2c-b89e-47b6-9c2f-d9d7a56b5383\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613695,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"6dbd1e2c-b89e-47b6-9c2f-d9d7a56b5383\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613695} {\"correlation_id\":\"6dbd1e2c-b89e-47b6-9c2f-d9d7a56b5383\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613695,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"6dbd1e2c-b89e-47b6-9c2f-d9d7a56b5383\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613695,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"6dbd1e2c-b89e-47b6-9c2f-d9d7a56b5383\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613694,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"cd14d297-e2e1-425f-b745-361ca50df005\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613694} {\"correlation_id\":\"cd14d297-e2e1-425f-b745-361ca50df005\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613694,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cd14d297-e2e1-425f-b745-361ca50df005\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613694,\"participants\":[{\"id\":1001659,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1001660,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"cd14d297-e2e1-425f-b745-361ca50df005\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cd14d297-e2e1-425f-b745-361ca50df005\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cd14d297-e2e1-425f-b745-361ca50df005\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cd14d297-e2e1-425f-b745-361ca50df005\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"cd14d297-e2e1-425f-b745-361ca50df005\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"cd14d297-e2e1-425f-b745-361ca50df005\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613694,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"cd14d297-e2e1-425f-b745-361ca50df005\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613694,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"cd14d297-e2e1-425f-b745-361ca50df005\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613694} {\"correlation_id\":\"cd14d297-e2e1-425f-b745-361ca50df005\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613694,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cd14d297-e2e1-425f-b745-361ca50df005\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613694,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"cd14d297-e2e1-425f-b745-361ca50df005\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613157,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34}} {\"correlation_id\":\"ed6d3fa0-08c4-412f-b60d-4582c6dfa704\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613157} {\"correlation_id\":\"ed6d3fa0-08c4-412f-b60d-4582c6dfa704\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613157,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ed6d3fa0-08c4-412f-b60d-4582c6dfa704\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613157,\"participants\":[{\"id\":1000746,\"user_id\":253,\"contact_id\":null,\"lead_id\":null},{\"id\":1000747,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null}]} {\"correlation_id\":\"ed6d3fa0-08c4-412f-b60d-4582c6dfa704\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ed6d3fa0-08c4-412f-b60d-4582c6dfa704\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ed6d3fa0-08c4-412f-b60d-4582c6dfa704\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ed6d3fa0-08c4-412f-b60d-4582c6dfa704\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ed6d3fa0-08c4-412f-b60d-4582c6dfa704\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613157,\"team_id\":2,\"email\":\"preslava.ivanova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"ed6d3fa0-08c4-412f-b60d-4582c6dfa704\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"ed6d3fa0-08c4-412f-b60d-4582c6dfa704\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613157,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"ed6d3fa0-08c4-412f-b60d-4582c6dfa704\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613157} {\"correlation_id\":\"ed6d3fa0-08c4-412f-b60d-4582c6dfa704\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613157,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ed6d3fa0-08c4-412f-b60d-4582c6dfa704\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613157,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34} {\"correlation_id\":\"ed6d3fa0-08c4-412f-b60d-4582c6dfa704\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613156,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34}} {\"correlation_id\":\"77af6469-661f-4d4b-b741-a5b059c8b181\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613156} {\"correlation_id\":\"77af6469-661f-4d4b-b741-a5b059c8b181\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613156,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"77af6469-661f-4d4b-b741-a5b059c8b181\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613156,\"participants\":[{\"id\":1000744,\"user_id\":253,\"contact_id\":null,\"lead_id\":null},{\"id\":1000745,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null}]} {\"correlation_id\":\"77af6469-661f-4d4b-b741-a5b059c8b181\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"77af6469-661f-4d4b-b741-a5b059c8b181\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"77af6469-661f-4d4b-b741-a5b059c8b181\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"77af6469-661f-4d4b-b741-a5b059c8b181\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"77af6469-661f-4d4b-b741-a5b059c8b181\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613156,\"team_id\":2,\"email\":\"preslava.ivanova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"77af6469-661f-4d4b-b741-a5b059c8b181\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"77af6469-661f-4d4b-b741-a5b059c8b181\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613156,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"77af6469-661f-4d4b-b741-a5b059c8b181\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613156} {\"correlation_id\":\"77af6469-661f-4d4b-b741-a5b059c8b181\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613156,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"77af6469-661f-4d4b-b741-a5b059c8b181\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613156,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34} {\"correlation_id\":\"77af6469-661f-4d4b-b741-a5b059c8b181\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613155,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34}} {\"correlation_id\":\"6cd64b7d-2826-41b3-83e4-000c5cd88462\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613155} {\"correlation_id\":\"6cd64b7d-2826-41b3-83e4-000c5cd88462\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613155,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"6cd64b7d-2826-41b3-83e4-000c5cd88462\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613155,\"participants\":[{\"id\":1000742,\"user_id\":253,\"contact_id\":null,\"lead_id\":null},{\"id\":1000743,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null}]} {\"correlation_id\":\"6cd64b7d-2826-41b3-83e4-000c5cd88462\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"6cd64b7d-2826-41b3-83e4-000c5cd88462\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"6cd64b7d-2826-41b3-83e4-000c5cd88462\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"6cd64b7d-2826-41b3-83e4-000c5cd88462\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"6cd64b7d-2826-41b3-83e4-000c5cd88462\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613155,\"team_id\":2,\"email\":\"preslava.ivanova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"6cd64b7d-2826-41b3-83e4-000c5cd88462\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"6cd64b7d-2826-41b3-83e4-000c5cd88462\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613155,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"6cd64b7d-2826-41b3-83e4-000c5cd88462\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613155} {\"correlation_id\":\"6cd64b7d-2826-41b3-83e4-000c5cd88462\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613155,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"6cd64b7d-2826-41b3-83e4-000c5cd88462\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613155,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34} {\"correlation_id\":\"6cd64b7d-2826-41b3-83e4-000c5cd88462\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613130,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"8d0dfbe8-30bd-4332-bf52-762b3a44300b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613130} {\"correlation_id\":\"8d0dfbe8-30bd-4332-bf52-762b3a44300b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613130,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8d0dfbe8-30bd-4332-bf52-762b3a44300b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613130,\"participants\":[{\"id\":1000693,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1000694,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"8d0dfbe8-30bd-4332-bf52-762b3a44300b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8d0dfbe8-30bd-4332-bf52-762b3a44300b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8d0dfbe8-30bd-4332-bf52-762b3a44300b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"8d0dfbe8-30bd-4332-bf52-762b3a44300b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"8d0dfbe8-30bd-4332-bf52-762b3a44300b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"8d0dfbe8-30bd-4332-bf52-762b3a44300b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613130,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"8d0dfbe8-30bd-4332-bf52-762b3a44300b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613130,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"8d0dfbe8-30bd-4332-bf52-762b3a44300b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613130} {\"correlation_id\":\"8d0dfbe8-30bd-4332-bf52-762b3a44300b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613130,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8d0dfbe8-30bd-4332-bf52-762b3a44300b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613130,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"8d0dfbe8-30bd-4332-bf52-762b3a44300b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612924,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":165,\"stage_id\":89}} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612924} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612924,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612924,\"participants\":[{\"id\":1000290,\"user_id\":19,\"contact_id\":null,\"lead_id\":null},{\"id\":1000291,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612924,\"team_id\":2,\"email\":\"james.graham@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":69,\"contact_id\":97,\"owner_id\":19} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":69,\"contact_id\":97,\"opportunity_id\":165} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612924,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612924} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612924,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612924,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":165,\"stage_id\":89} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:23] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612923,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":165,\"stage_id\":89}} {\"correlation_id\":\"773e5722-a5c7-48ec-b0d8-11b3aa2aa37a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:23] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612923} {\"correlation_id\":\"773e5722-a5c7-48ec-b0d8-11b3aa2aa37a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:23] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612923,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"773e5722-a5c7-48ec-b0d8-11b3aa2aa37a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:23] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612923,\"participants\":[{\"id\":1000288,\"user_id\":19,\"contact_id\":null,\"lead_id\":null},{\"id\":1000289,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"773e5722-a5c7-48ec-b0d8-11b3aa2aa37a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:23] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"773e5722-a5c7-48ec-b0d8-11b3aa2aa37a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:23] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"773e5722-a5c7-48ec-b0d8-11b3aa2aa37a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:23] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"773e5722-a5c7-48ec-b0d8-11b3aa2aa37a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:23] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"773e5722-a5c7-48ec-b0d8-11b3aa2aa37a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:23] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612923,\"team_id\":2,\"email\":\"james.graham@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"773e5722-a5c7-48ec-b0d8-11b3aa2aa37a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:23] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"773e5722-a5c7-48ec-b0d8-11b3aa2aa37a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:23] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612923,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"773e5722-a5c7-48ec-b0d8-11b3aa2aa37a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:24] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612923} {\"correlation_id\":\"773e5722-a5c7-48ec-b0d8-11b3aa2aa37a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:24] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612923,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"773e5722-a5c7-48ec-b0d8-11b3aa2aa37a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:24] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612923,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":165,\"stage_id\":89} {\"correlation_id\":\"773e5722-a5c7-48ec-b0d8-11b3aa2aa37a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:24] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612922,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":165,\"stage_id\":89}} {\"correlation_id\":\"7d6f9c8c-16e0-4f84-b07d-adddfa5c739f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:24] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612922} {\"correlation_id\":\"7d6f9c8c-16e0-4f84-b07d-adddfa5c739f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:24] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612922,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7d6f9c8c-16e0-4f84-b07d-adddfa5c739f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:24] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612922,\"participants\":[{\"id\":1000286,\"user_id\":19,\"contact_id\":null,\"lead_id\":null},{\"id\":1000287,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"7d6f9c8c-16e0-4f84-b07d-adddfa5c739f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:24] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7d6f9c8c-16e0-4f84-b07d-adddfa5c739f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:24] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7d6f9c8c-16e0-4f84-b07d-adddfa5c739f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7d6f9c8c-16e0-4f84-b07d-adddfa5c739f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"7d6f9c8c-16e0-4f84-b07d-adddfa5c739f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612922,\"team_id\":2,\"email\":\"james.graham@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"7d6f9c8c-16e0-4f84-b07d-adddfa5c739f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"7d6f9c8c-16e0-4f84-b07d-adddfa5c739f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612922,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"7d6f9c8c-16e0-4f84-b07d-adddfa5c739f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612922} {\"correlation_id\":\"7d6f9c8c-16e0-4f84-b07d-adddfa5c739f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612922,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7d6f9c8c-16e0-4f84-b07d-adddfa5c739f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612922,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":165,\"stage_id\":89} {\"correlation_id\":\"7d6f9c8c-16e0-4f84-b07d-adddfa5c739f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612847,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"462c34b9-0b57-4e81-a9e2-5ce4a6900814\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612847} {\"correlation_id\":\"462c34b9-0b57-4e81-a9e2-5ce4a6900814\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612847,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"462c34b9-0b57-4e81-a9e2-5ce4a6900814\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612847,\"participants\":[{\"id\":1000130,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":1000131,\"user_id\":261,\"contact_id\":null,\"lead_id\":null},{\"id\":1000151,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null}]} {\"correlation_id\":\"462c34b9-0b57-4e81-a9e2-5ce4a6900814\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"462c34b9-0b57-4e81-a9e2-5ce4a6900814\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"462c34b9-0b57-4e81-a9e2-5ce4a6900814\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"462c34b9-0b57-4e81-a9e2-5ce4a6900814\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"462c34b9-0b57-4e81-a9e2-5ce4a6900814\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"correlation_id\":\"462c34b9-0b57-4e81-a9e2-5ce4a6900814\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"503de928-3a1a-4314-a23f-ca2625111f7f\",\"trace_id\":\"7ee54e65-014c-4ae3-821a-dc0488dc10ed\"}\n[2026-05-11 11:09:26] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"503de928-3a1a-4314-a23f-ca2625111f7f\",\"trace_id\":\"7ee54e65-014c-4ae3-821a-dc0488dc10ed\"}\n[2026-05-11 11:09:26] local.INFO: [Hubspot] Failed to fetch contact {\"email\":\"adelina.petrova@jiminny.com\",\"reason\":\"[404] Client error: `GET https://api.hubapi.com/crm/v3/objects/contacts/adelina.petrova%40jiminny.com?properties=email%2Cfirstname%2Clastname%2Ccountry%2Cphone%2Cmobilephone%2Cjobtitle%2Chubspot_owner_id%2Cassociatedcompanyid%2Cphoto&archived=0&idProperty=email` resulted in a `404 Not Found` response\"} {\"correlation_id\":\"462c34b9-0b57-4e81-a9e2-5ce4a6900814\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:26] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"correlation_id\":\"462c34b9-0b57-4e81-a9e2-5ce4a6900814\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:26] local.WARNING: [Hubspot] No retry-after header or known message, using default {\"exception_class\":\"SevenShores\\\\Hubspot\\\\Exceptions\\\\BadRequest\",\"message\":\"\"} {\"correlation_id\":\"462c34b9-0b57-4e81-a9e2-5ce4a6900814\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:26] local.WARNING: [Hubspot] Received 429 from API {\"team_id\":2,\"config_id\":2,\"retry_after\":10,\"message\":\"\",\"reason\":\"Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response:\n{\\\"status\\\":\\\"error\\\",\\\"message\\\":\\\"You have reached your secondly limit.\\\",\\\"errorType\\\":\\\"RATE_LIMIT\\\",\\\"correlationId\\\":\\\"019e16ba-4 (truncated...)\n\"} {\"correlation_id\":\"462c34b9-0b57-4e81-a9e2-5ce4a6900814\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:26] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":10,\"delay\":14} {\"correlation_id\":\"462c34b9-0b57-4e81-a9e2-5ce4a6900814\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:26] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612822,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"ca259dfb-7b24-4406-9b61-a4f28761020b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:26] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612822} {\"correlation_id\":\"ca259dfb-7b24-4406-9b61-a4f28761020b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:26] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612822,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ca259dfb-7b24-4406-9b61-a4f28761020b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:26] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612822,\"participants\":[{\"id\":1000080,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1000081,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"ca259dfb-7b24-4406-9b61-a4f28761020b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ca259dfb-7b24-4406-9b61-a4f28761020b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ca259dfb-7b24-4406-9b61-a4f28761020b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ca259dfb-7b24-4406-9b61-a4f28761020b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ca259dfb-7b24-4406-9b61-a4f28761020b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"ca259dfb-7b24-4406-9b61-a4f28761020b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612822,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"ca259dfb-7b24-4406-9b61-a4f28761020b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612822,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"ca259dfb-7b24-4406-9b61-a4f28761020b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612822} {\"correlation_id\":\"ca259dfb-7b24-4406-9b61-a4f28761020b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612822,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ca259dfb-7b24-4406-9b61-a4f28761020b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612822,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"ca259dfb-7b24-4406-9b61-a4f28761020b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612819,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"cd602b18-88a5-4ea9-afef-e52be017fc0f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612819} {\"correlation_id\":\"cd602b18-88a5-4ea9-afef-e52be017fc0f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612819,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cd602b18-88a5-4ea9-afef-e52be017fc0f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612819,\"participants\":[{\"id\":1000073,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1000074,\"user_id\":261,\"contact_id\":null,\"lead_id\":null},{\"id\":1000075,\"user_id\":null,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"cd602b18-88a5-4ea9-afef-e52be017fc0f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cd602b18-88a5-4ea9-afef-e52be017fc0f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cd602b18-88a5-4ea9-afef-e52be017fc0f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cd602b18-88a5-4ea9-afef-e52be017fc0f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"cd602b18-88a5-4ea9-afef-e52be017fc0f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"cd602b18-88a5-4ea9-afef-e52be017fc0f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612819,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"cd602b18-88a5-4ea9-afef-e52be017fc0f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"correlation_id\":\"cd602b18-88a5-4ea9-afef-e52be017fc0f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"correlation_id\":\"cd602b18-88a5-4ea9-afef-e52be017fc0f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":10,\"delay\":10} {\"correlation_id\":\"cd602b18-88a5-4ea9-afef-e52be017fc0f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612673,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"d86174e3-e3b0-41d6-b9f5-97de4ca4da9f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612673} {\"correlation_id\":\"d86174e3-e3b0-41d6-b9f5-97de4ca4da9f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612673,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d86174e3-e3b0-41d6-b9f5-97de4ca4da9f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612673,\"participants\":[{\"id\":999993,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":999994,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"d86174e3-e3b0-41d6-b9f5-97de4ca4da9f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d86174e3-e3b0-41d6-b9f5-97de4ca4da9f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d86174e3-e3b0-41d6-b9f5-97de4ca4da9f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"d86174e3-e3b0-41d6-b9f5-97de4ca4da9f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"d86174e3-e3b0-41d6-b9f5-97de4ca4da9f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"d86174e3-e3b0-41d6-b9f5-97de4ca4da9f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612673,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"d86174e3-e3b0-41d6-b9f5-97de4ca4da9f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612673,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"d86174e3-e3b0-41d6-b9f5-97de4ca4da9f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612673} {\"correlation_id\":\"d86174e3-e3b0-41d6-b9f5-97de4ca4da9f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612673,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d86174e3-e3b0-41d6-b9f5-97de4ca4da9f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612673,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"d86174e3-e3b0-41d6-b9f5-97de4ca4da9f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612642,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"2f9f8923-a6e3-4e5b-a1ae-cdea42bb3cda\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612642} {\"correlation_id\":\"2f9f8923-a6e3-4e5b-a1ae-cdea42bb3cda\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612642,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2f9f8923-a6e3-4e5b-a1ae-cdea42bb3cda\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612642,\"participants\":[{\"id\":999935,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":999936,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"2f9f8923-a6e3-4e5b-a1ae-cdea42bb3cda\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2f9f8923-a6e3-4e5b-a1ae-cdea42bb3cda\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2f9f8923-a6e3-4e5b-a1ae-cdea42bb3cda\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"2f9f8923-a6e3-4e5b-a1ae-cdea42bb3cda\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"2f9f8923-a6e3-4e5b-a1ae-cdea42bb3cda\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"2f9f8923-a6e3-4e5b-a1ae-cdea42bb3cda\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612642,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"2f9f8923-a6e3-4e5b-a1ae-cdea42bb3cda\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612642,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"2f9f8923-a6e3-4e5b-a1ae-cdea42bb3cda\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612642} {\"correlation_id\":\"2f9f8923-a6e3-4e5b-a1ae-cdea42bb3cda\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612642,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2f9f8923-a6e3-4e5b-a1ae-cdea42bb3cda\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612642,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"2f9f8923-a6e3-4e5b-a1ae-cdea42bb3cda\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612598,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612598} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612598,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612598,\"participants\":[{\"id\":999857,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999858,\"user_id\":206,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":243,\"contact_id\":4491,\"owner_id\":206} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":243,\"contact_id\":4491} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":243,\"contact_id\":4491,\"opportunity_id\":276} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612598,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612598,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612598} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612598,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612598,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":5.94,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"6d49ffdc-2ed7-4eae-a1ee-e25ca95bbea8\",\"trace_id\":\"906573b5-005c-4820-8a32-3b0703ea86dd\"}\n[2026-05-11 11:09:28] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612597,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"c69a3a24-bab5-4d56-887b-01111944b3a2\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612597} {\"correlation_id\":\"c69a3a24-bab5-4d56-887b-01111944b3a2\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612597,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"c69a3a24-bab5-4d56-887b-01111944b3a2\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612597,\"participants\":[{\"id\":999855,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999856,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null}]} {\"correlation_id\":\"c69a3a24-bab5-4d56-887b-01111944b3a2\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"c69a3a24-bab5-4d56-887b-01111944b3a2\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"c69a3a24-bab5-4d56-887b-01111944b3a2\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"c69a3a24-bab5-4d56-887b-01111944b3a2\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"c69a3a24-bab5-4d56-887b-01111944b3a2\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612597,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"c69a3a24-bab5-4d56-887b-01111944b3a2\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"c69a3a24-bab5-4d56-887b-01111944b3a2\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612597,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"c69a3a24-bab5-4d56-887b-01111944b3a2\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612597} {\"correlation_id\":\"c69a3a24-bab5-4d56-887b-01111944b3a2\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612597,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"c69a3a24-bab5-4d56-887b-01111944b3a2\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612597,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"c69a3a24-bab5-4d56-887b-01111944b3a2\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612596,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"0da9fc28-653b-406f-bafe-5d78010cb3da\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612596} {\"correlation_id\":\"0da9fc28-653b-406f-bafe-5d78010cb3da\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612596,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0da9fc28-653b-406f-bafe-5d78010cb3da\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612596,\"participants\":[{\"id\":999853,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999854,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null}]} {\"correlation_id\":\"0da9fc28-653b-406f-bafe-5d78010cb3da\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0da9fc28-653b-406f-bafe-5d78010cb3da\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0da9fc28-653b-406f-bafe-5d78010cb3da\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0da9fc28-653b-406f-bafe-5d78010cb3da\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0da9fc28-653b-406f-bafe-5d78010cb3da\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612596,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"0da9fc28-653b-406f-bafe-5d78010cb3da\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"0da9fc28-653b-406f-bafe-5d78010cb3da\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612596,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"0da9fc28-653b-406f-bafe-5d78010cb3da\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612596} {\"correlation_id\":\"0da9fc28-653b-406f-bafe-5d78010cb3da\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612596,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0da9fc28-653b-406f-bafe-5d78010cb3da\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612596,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"0da9fc28-653b-406f-bafe-5d78010cb3da\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612595,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"f7dd9c18-1f48-4adc-b2a2-a5e768444dfd\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612595} {\"correlation_id\":\"f7dd9c18-1f48-4adc-b2a2-a5e768444dfd\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612595,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"f7dd9c18-1f48-4adc-b2a2-a5e768444dfd\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612595,\"participants\":[{\"id\":999851,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999852,\"user_id\":206,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"f7dd9c18-1f48-4adc-b2a2-a5e768444dfd\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f7dd9c18-1f48-4adc-b2a2-a5e768444dfd\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f7dd9c18-1f48-4adc-b2a2-a5e768444dfd\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"f7dd9c18-1f48-4adc-b2a2-a5e768444dfd\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"f7dd9c18-1f48-4adc-b2a2-a5e768444dfd\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"f7dd9c18-1f48-4adc-b2a2-a5e768444dfd\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612595,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"f7dd9c18-1f48-4adc-b2a2-a5e768444dfd\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612595,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"f7dd9c18-1f48-4adc-b2a2-a5e768444dfd\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612595} {\"correlation_id\":\"f7dd9c18-1f48-4adc-b2a2-a5e768444dfd\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612595,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"f7dd9c18-1f48-4adc-b2a2-a5e768444dfd\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612595,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"f7dd9c18-1f48-4adc-b2a2-a5e768444dfd\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612594,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"4dacaa76-fc8b-462e-95ae-b74602d62a8f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612594} {\"correlation_id\":\"4dacaa76-fc8b-462e-95ae-b74602d62a8f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612594,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4dacaa76-fc8b-462e-95ae-b74602d62a8f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612594,\"participants\":[{\"id\":999849,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999850,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null}]} {\"correlation_id\":\"4dacaa76-fc8b-462e-95ae-b74602d62a8f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4dacaa76-fc8b-462e-95ae-b74602d62a8f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4dacaa76-fc8b-462e-95ae-b74602d62a8f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"4dacaa76-fc8b-462e-95ae-b74602d62a8f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"4dacaa76-fc8b-462e-95ae-b74602d62a8f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612594,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"4dacaa76-fc8b-462e-95ae-b74602d62a8f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"4dacaa76-fc8b-462e-95ae-b74602d62a8f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612594,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"4dacaa76-fc8b-462e-95ae-b74602d62a8f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612594} {\"correlation_id\":\"4dacaa76-fc8b-462e-95ae-b74602d62a8f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612594,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4dacaa76-fc8b-462e-95ae-b74602d62a8f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612594,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"4dacaa76-fc8b-462e-95ae-b74602d62a8f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612593,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"0845a766-3bc8-4303-83dc-9f0e57d46a44\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612593} {\"correlation_id\":\"0845a766-3bc8-4303-83dc-9f0e57d46a44\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612593,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0845a766-3bc8-4303-83dc-9f0e57d46a44\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612593,\"participants\":[{\"id\":999847,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999848,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null}]} {\"correlation_id\":\"0845a766-3bc8-4303-83dc-9f0e57d46a44\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0845a766-3bc8-4303-83dc-9f0e57d46a44\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0845a766-3bc8-4303-83dc-9f0e57d46a44\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0845a766-3bc8-4303-83dc-9f0e57d46a44\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0845a766-3bc8-4303-83dc-9f0e57d46a44\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612593,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"0845a766-3bc8-4303-83dc-9f0e57d46a44\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"0845a766-3bc8-4303-83dc-9f0e57d46a44\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612593,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"0845a766-3bc8-4303-83dc-9f0e57d46a44\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612593} {\"correlation_id\":\"0845a766-3bc8-4303-83dc-9f0e57d46a44\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612593,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0845a766-3bc8-4303-83dc-9f0e57d46a44\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612593,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"0845a766-3bc8-4303-83dc-9f0e57d46a44\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612592,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"315733d6-e316-4fb7-9ab6-c38b0bc2a394\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612592} {\"correlation_id\":\"315733d6-e316-4fb7-9ab6-c38b0bc2a394\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612592,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"315733d6-e316-4fb7-9ab6-c38b0bc2a394\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612592,\"participants\":[{\"id\":999845,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999846,\"user_id\":206,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"315733d6-e316-4fb7-9ab6-c38b0bc2a394\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"315733d6-e316-4fb7-9ab6-c38b0bc2a394\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"315733d6-e316-4fb7-9ab6-c38b0bc2a394\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"315733d6-e316-4fb7-9ab6-c38b0bc2a394\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"315733d6-e316-4fb7-9ab6-c38b0bc2a394\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"315733d6-e316-4fb7-9ab6-c38b0bc2a394\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612592,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"315733d6-e316-4fb7-9ab6-c38b0bc2a394\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612592,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"315733d6-e316-4fb7-9ab6-c38b0bc2a394\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612592} {\"correlation_id\":\"315733d6-e316-4fb7-9ab6-c38b0bc2a394\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612592,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"315733d6-e316-4fb7-9ab6-c38b0bc2a394\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612592,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"315733d6-e316-4fb7-9ab6-c38b0bc2a394\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612591,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"a4f3cee6-628d-4ea1-afef-271709541a6f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612591} {\"correlation_id\":\"a4f3cee6-628d-4ea1-afef-271709541a6f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612591,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a4f3cee6-628d-4ea1-afef-271709541a6f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612591,\"participants\":[{\"id\":999843,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999844,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null}]} {\"correlation_id\":\"a4f3cee6-628d-4ea1-afef-271709541a6f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a4f3cee6-628d-4ea1-afef-271709541a6f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a4f3cee6-628d-4ea1-afef-271709541a6f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"a4f3cee6-628d-4ea1-afef-271709541a6f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"a4f3cee6-628d-4ea1-afef-271709541a6f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612591,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"a4f3cee6-628d-4ea1-afef-271709541a6f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"a4f3cee6-628d-4ea1-afef-271709541a6f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612591,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"a4f3cee6-628d-4ea1-afef-271709541a6f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612591} {\"correlation_id\":\"a4f3cee6-628d-4ea1-afef-271709541a6f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612591,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a4f3cee6-628d-4ea1-afef-271709541a6f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612591,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"a4f3cee6-628d-4ea1-afef-271709541a6f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612590,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"dfa94946-5871-4106-8e8f-5e7a418e64ae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612590} {\"correlation_id\":\"dfa94946-5871-4106-8e8f-5e7a418e64ae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612590,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"dfa94946-5871-4106-8e8f-5e7a418e64ae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612590,\"participants\":[{\"id\":999841,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999842,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null}]} {\"correlation_id\":\"dfa94946-5871-4106-8e8f-5e7a418e64ae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"dfa94946-5871-4106-8e8f-5e7a418e64ae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"dfa94946-5871-4106-8e8f-5e7a418e64ae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"dfa94946-5871-4106-8e8f-5e7a418e64ae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"dfa94946-5871-4106-8e8f-5e7a418e64ae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612590,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"dfa94946-5871-4106-8e8f-5e7a418e64ae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"dfa94946-5871-4106-8e8f-5e7a418e64ae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612590,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"dfa94946-5871-4106-8e8f-5e7a418e64ae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612590} {\"correlation_id\":\"dfa94946-5871-4106-8e8f-5e7a418e64ae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612590,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"dfa94946-5871-4106-8e8f-5e7a418e64ae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612590,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"dfa94946-5871-4106-8e8f-5e7a418e64ae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612589,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"92666ef7-2d6e-4056-9d87-23df1bc694b1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612589} {\"correlation_id\":\"92666ef7-2d6e-4056-9d87-23df1bc694b1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612589,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"92666ef7-2d6e-4056-9d87-23df1bc694b1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612589,\"participants\":[{\"id\":999839,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999840,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null}]} {\"correlation_id\":\"92666ef7-2d6e-4056-9d87-23df1bc694b1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"92666ef7-2d6e-4056-9d87-23df1bc694b1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"92666ef7-2d6e-4056-9d87-23df1bc694b1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"92666ef7-2d6e-4056-9d87-23df1bc694b1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"92666ef7-2d6e-4056-9d87-23df1bc694b1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612589,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"92666ef7-2d6e-4056-9d87-23df1bc694b1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"92666ef7-2d6e-4056-9d87-23df1bc694b1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612589,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"92666ef7-2d6e-4056-9d87-23df1bc694b1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612589} {\"correlation_id\":\"92666ef7-2d6e-4056-9d87-23df1bc694b1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612589,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"92666ef7-2d6e-4056-9d87-23df1bc694b1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612589,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"92666ef7-2d6e-4056-9d87-23df1bc694b1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612588,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"7441c20c-f1d3-4310-a3a7-2c1aad9bbe25\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612588} {\"correlation_id\":\"7441c20c-f1d3-4310-a3a7-2c1aad9bbe25\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612588,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7441c20c-f1d3-4310-a3a7-2c1aad9bbe25\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612588,\"participants\":[{\"id\":999837,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999838,\"user_id\":206,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"7441c20c-f1d3-4310-a3a7-2c1aad9bbe25\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7441c20c-f1d3-4310-a3a7-2c1aad9bbe25\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7441c20c-f1d3-4310-a3a7-2c1aad9bbe25\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7441c20c-f1d3-4310-a3a7-2c1aad9bbe25\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"7441c20c-f1d3-4310-a3a7-2c1aad9bbe25\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"7441c20c-f1d3-4310-a3a7-2c1aad9bbe25\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612588,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"7441c20c-f1d3-4310-a3a7-2c1aad9bbe25\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612588,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"7441c20c-f1d3-4310-a3a7-2c1aad9bbe25\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612588} {\"correlation_id\":\"7441c20c-f1d3-4310-a3a7-2c1aad9bbe25\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612588,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7441c20c-f1d3-4310-a3a7-2c1aad9bbe25\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612588,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"7441c20c-f1d3-4310-a3a7-2c1aad9bbe25\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612587,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"b6283377-e461-4841-90a6-bd9b51c31e78\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612587} {\"correlation_id\":\"b6283377-e461-4841-90a6-bd9b51c31e78\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612587,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b6283377-e461-4841-90a6-bd9b51c31e78\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612587,\"participants\":[{\"id\":999835,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999836,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null}]} {\"correlation_id\":\"b6283377-e461-4841-90a6-bd9b51c31e78\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b6283377-e461-4841-90a6-bd9b51c31e78\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b6283377-e461-4841-90a6-bd9b51c31e78\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b6283377-e461-4841-90a6-bd9b51c31e78\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"b6283377-e461-4841-90a6-bd9b51c31e78\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612587,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"b6283377-e461-4841-90a6-bd9b51c31e78\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"b6283377-e461-4841-90a6-bd9b51c31e78\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612587,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"b6283377-e461-4841-90a6-bd9b51c31e78\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612587} {\"correlation_id\":\"b6283377-e461-4841-90a6-bd9b51c31e78\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612587,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b6283377-e461-4841-90a6-bd9b51c31e78\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612587,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"b6283377-e461-4841-90a6-bd9b51c31e78\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612586,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"d0ddb01c-2b21-4989-998a-fa52e7affced\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612586} {\"correlation_id\":\"d0ddb01c-2b21-4989-998a-fa52e7affced\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612586,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d0ddb01c-2b21-4989-998a-fa52e7affced\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612586,\"participants\":[{\"id\":999833,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999834,\"user_id\":206,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"d0ddb01c-2b21-4989-998a-fa52e7affced\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d0ddb01c-2b21-4989-998a-fa52e7affced\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d0ddb01c-2b21-4989-998a-fa52e7affced\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"d0ddb01c-2b21-4989-998a-fa52e7affced\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"d0ddb01c-2b21-4989-998a-fa52e7affced\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"d0ddb01c-2b21-4989-998a-fa52e7affced\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612586,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"d0ddb01c-2b21-4989-998a-fa52e7affced\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612586,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"d0ddb01c-2b21-4989-998a-fa52e7affced\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612586} {\"correlation_id\":\"d0ddb01c-2b21-4989-998a-fa52e7affced\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612586,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d0ddb01c-2b21-4989-998a-fa52e7affced\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612586,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"d0ddb01c-2b21-4989-998a-fa52e7affced\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.NOTICE: Monitoring start {\"correlation_id\":\"772cf24f-66f8-49c0-8ef5-e6c1d128fccb\",\"trace_id\":\"2d950f5a-3a35-4a8b-b33b-4d129409925b\"}\n[2026-05-11 11:09:31] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612585,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"cef11ffe-61af-425d-b899-399323237a47\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612585} {\"correlation_id\":\"cef11ffe-61af-425d-b899-399323237a47\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612585,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cef11ffe-61af-425d-b899-399323237a47\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.NOTICE: Monitoring end {\"correlation_id\":\"772cf24f-66f8-49c0-8ef5-e6c1d128fccb\",\"trace_id\":\"2d950f5a-3a35-4a8b-b33b-4d129409925b\"}\n[2026-05-11 11:09:31] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612585,\"participants\":[{\"id\":999831,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999832,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null}]} {\"correlation_id\":\"cef11ffe-61af-425d-b899-399323237a47\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cef11ffe-61af-425d-b899-399323237a47\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cef11ffe-61af-425d-b899-399323237a47\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cef11ffe-61af-425d-b899-399323237a47\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"cef11ffe-61af-425d-b899-399323237a47\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612585,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"cef11ffe-61af-425d-b899-399323237a47\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"cef11ffe-61af-425d-b899-399323237a47\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612585,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"cef11ffe-61af-425d-b899-399323237a47\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612585} {\"correlation_id\":\"cef11ffe-61af-425d-b899-399323237a47\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612585,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cef11ffe-61af-425d-b899-399323237a47\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612585,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"cef11ffe-61af-425d-b899-399323237a47\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612584,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"2aa83935-5a46-4a3d-98d7-acfcf3f3f6cb\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612584} {\"correlation_id\":\"2aa83935-5a46-4a3d-98d7-acfcf3f3f6cb\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612584,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2aa83935-5a46-4a3d-98d7-acfcf3f3f6cb\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612584,\"participants\":[{\"id\":999829,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999830,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null}]} {\"correlation_id\":\"2aa83935-5a46-4a3d-98d7-acfcf3f3f6cb\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2aa83935-5a46-4a3d-98d7-acfcf3f3f6cb\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2aa83935-5a46-4a3d-98d7-acfcf3f3f6cb\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"2aa83935-5a46-4a3d-98d7-acfcf3f3f6cb\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"2aa83935-5a46-4a3d-98d7-acfcf3f3f6cb\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612584,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"2aa83935-5a46-4a3d-98d7-acfcf3f3f6cb\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"2aa83935-5a46-4a3d-98d7-acfcf3f3f6cb\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612584,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"2aa83935-5a46-4a3d-98d7-acfcf3f3f6cb\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612584} {\"correlation_id\":\"2aa83935-5a46-4a3d-98d7-acfcf3f3f6cb\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612584,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2aa83935-5a46-4a3d-98d7-acfcf3f3f6cb\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612584,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"2aa83935-5a46-4a3d-98d7-acfcf3f3f6cb\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612583,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"04dd4d55-bdb2-4f42-9fbd-8a132707b475\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612583} {\"correlation_id\":\"04dd4d55-bdb2-4f42-9fbd-8a132707b475\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612583,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"04dd4d55-bdb2-4f42-9fbd-8a132707b475\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612583,\"participants\":[{\"id\":999827,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999828,\"user_id\":206,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"04dd4d55-bdb2-4f42-9fbd-8a132707b475\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"04dd4d55-bdb2-4f42-9fbd-8a132707b475\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"04dd4d55-bdb2-4f42-9fbd-8a132707b475\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"04dd4d55-bdb2-4f42-9fbd-8a132707b475\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"04dd4d55-bdb2-4f42-9fbd-8a132707b475\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"04dd4d55-bdb2-4f42-9fbd-8a132707b475\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612583,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"04dd4d55-bdb2-4f42-9fbd-8a132707b475\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612583,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"04dd4d55-bdb2-4f42-9fbd-8a132707b475\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612583} {\"correlation_id\":\"04dd4d55-bdb2-4f42-9fbd-8a132707b475\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612583,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"04dd4d55-bdb2-4f42-9fbd-8a132707b475\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612583,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"04dd4d55-bdb2-4f42-9fbd-8a132707b475\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612582,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"58e7116b-76f4-4698-a629-ff1eb613d93e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612582} {\"correlation_id\":\"58e7116b-76f4-4698-a629-ff1eb613d93e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612582,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"58e7116b-76f4-4698-a629-ff1eb613d93e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612582,\"participants\":[{\"id\":999825,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999826,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null}]} {\"correlation_id\":\"58e7116b-76f4-4698-a629-ff1eb613d93e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"58e7116b-76f4-4698-a629-ff1eb613d93e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"58e7116b-76f4-4698-a629-ff1eb613d93e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"58e7116b-76f4-4698-a629-ff1eb613d93e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"58e7116b-76f4-4698-a629-ff1eb613d93e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612582,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"58e7116b-76f4-4698-a629-ff1eb613d93e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"58e7116b-76f4-4698-a629-ff1eb613d93e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612582,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"58e7116b-76f4-4698-a629-ff1eb613d93e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612582} {\"correlation_id\":\"58e7116b-76f4-4698-a629-ff1eb613d93e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612582,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"58e7116b-76f4-4698-a629-ff1eb613d93e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612582,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"58e7116b-76f4-4698-a629-ff1eb613d93e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612581,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"b1cdf1eb-a77f-4062-bc7a-52e75ec005f1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612581} {\"correlation_id\":\"b1cdf1eb-a77f-4062-bc7a-52e75ec005f1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612581,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b1cdf1eb-a77f-4062-bc7a-52e75ec005f1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612581,\"participants\":[{\"id\":999823,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999824,\"user_id\":206,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"b1cdf1eb-a77f-4062-bc7a-52e75ec005f1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b1cdf1eb-a77f-4062-bc7a-52e75ec005f1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b1cdf1eb-a77f-4062-bc7a-52e75ec005f1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b1cdf1eb-a77f-4062-bc7a-52e75ec005f1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"b1cdf1eb-a77f-4062-bc7a-52e75ec005f1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"b1cdf1eb-a77f-4062-bc7a-52e75ec005f1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612581,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"b1cdf1eb-a77f-4062-bc7a-52e75ec005f1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612581,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"b1cdf1eb-a77f-4062-bc7a-52e75ec005f1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612581} {\"correlation_id\":\"b1cdf1eb-a77f-4062-bc7a-52e75ec005f1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612581,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b1cdf1eb-a77f-4062-bc7a-52e75ec005f1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612581,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"b1cdf1eb-a77f-4062-bc7a-52e75ec005f1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612565,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"4531fd00-7875-4334-b3c2-407d31ec1255\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612565} {\"correlation_id\":\"4531fd00-7875-4334-b3c2-407d31ec1255\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612565,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4531fd00-7875-4334-b3c2-407d31ec1255\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612565,\"participants\":[{\"id\":999789,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999790,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null}]} {\"correlation_id\":\"4531fd00-7875-4334-b3c2-407d31ec1255\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4531fd00-7875-4334-b3c2-407d31ec1255\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4531fd00-7875-4334-b3c2-407d31ec1255\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"4531fd00-7875-4334-b3c2-407d31ec1255\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"4531fd00-7875-4334-b3c2-407d31ec1255\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612565,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"4531fd00-7875-4334-b3c2-407d31ec1255\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"4531fd00-7875-4334-b3c2-407d31ec1255\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612565,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"4531fd00-7875-4334-b3c2-407d31ec1255\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612565} {\"correlation_id\":\"4531fd00-7875-4334-b3c2-407d31ec1255\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612565,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4531fd00-7875-4334-b3c2-407d31ec1255\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612565,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"4531fd00-7875-4334-b3c2-407d31ec1255\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612563,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34}} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612563} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612563,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612563,\"participants\":[{\"id\":999784,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999785,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null}]} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612563,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":206} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":244,\"contact_id\":4487} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":350} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612563,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612563} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612563,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612563,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612562,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"correlation_id\":\"096bc408-0a3f-43ef-9cf6-f9007ee7315c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612562} {\"correlation_id\":\"096bc408-0a3f-43ef-9cf6-f9007ee7315c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612562,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"096bc408-0a3f-43ef-9cf6-f9007ee7315c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612562,\"participants\":[{\"id\":999782,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":999783,\"user_id\":206,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"096bc408-0a3f-43ef-9cf6-f9007ee7315c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"096bc408-0a3f-43ef-9cf6-f9007ee7315c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"096bc408-0a3f-43ef-9cf6-f9007ee7315c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"096bc408-0a3f-43ef-9cf6-f9007ee7315c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"096bc408-0a3f-43ef-9cf6-f9007ee7315c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"447782589921@txt.staging.jiminny.com\"} {\"correlation_id\":\"096bc408-0a3f-43ef-9cf6-f9007ee7315c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:34] local.INFO: [Hubspot] Failed to fetch contact {\"email\":\"447782589921@txt.staging.jiminny.com\",\"reason\":\"[404] Client error: `GET https://api.hubapi.com/crm/v3/objects/contacts/447782589921%40txt.staging.jiminny.com?properties=email%2Cfirstname%2Clastname%2Ccountry%2Cphone%2Cmobilephone%2Cjobtitle%2Chubspot_owner_id%2Cassociatedcompanyid%2Cphoto&archived=0&idProperty=email` resulted in a `404 Not Found` response\"} {\"correlation_id\":\"096bc408-0a3f-43ef-9cf6-f9007ee7315c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:34] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {\"identifier_type\":\"email\",\"identifier\":\"447782589921@txt.staging.jiminny.com\"} {\"correlation_id\":\"096bc408-0a3f-43ef-9cf6-f9007ee7315c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:34] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":10,\"delay\":14} {\"correlation_id\":\"096bc408-0a3f-43ef-9cf6-f9007ee7315c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:34] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612561,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"correlation_id\":\"cded6bdb-0e7c-4baa-b280-5798e81b236a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:34] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612561} {\"correlation_id\":\"cded6bdb-0e7c-4baa-b280-5798e81b236a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:34] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612561,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cded6bdb-0e7c-4baa-b280-5798e81b236a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:34] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612561,\"participants\":[{\"id\":999780,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999781,\"user_id\":null,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"cded6bdb-0e7c-4baa-b280-5798e81b236a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:34] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cded6bdb-0e7c-4baa-b280-5798e81b236a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:34] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cded6bdb-0e7c-4baa-b280-5798e81b236a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:34] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cded6bdb-0e7c-4baa-b280-5798e81b236a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:34] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"cded6bdb-0e7c-4baa-b280-5798e81b236a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:34] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612561,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"cded6bdb-0e7c-4baa-b280-5798e81b236a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:34] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"447700174614.447782589921.OeREojLVnk@txt.staging.jiminny.com\"} {\"correlation_id\":\"cded6bdb-0e7c-4baa-b280-5798e81b236a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [Hubspot] Failed to fetch contact {\"email\":\"447700174614.447782589921.OeREojLVnk@txt.staging.jiminny.com\",\"reason\":\"[404] Client error: `GET https://api.hubapi.com/crm/v3/objects/contacts/447700174614.447782589921.OeREojLVnk%40txt.staging.jiminny.com?properties=email%2Cfirstname%2Clastname%2Ccountry%2Cphone%2Cmobilephone%2Cjobtitle%2Chubspot_owner_id%2Cassociatedcompanyid%2Cphoto&archived=0&idProperty=email` resulted in a `404 Not Found` response\"} {\"correlation_id\":\"cded6bdb-0e7c-4baa-b280-5798e81b236a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {\"identifier_type\":\"email\",\"identifier\":\"447700174614.447782589921.OeREojLVnk@txt.staging.jiminny.com\"} {\"correlation_id\":\"cded6bdb-0e7c-4baa-b280-5798e81b236a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":10,\"delay\":10} {\"correlation_id\":\"cded6bdb-0e7c-4baa-b280-5798e81b236a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612560,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"correlation_id\":\"53ef5599-df42-4f3d-90a1-8f89c19435e4\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612560} {\"correlation_id\":\"53ef5599-df42-4f3d-90a1-8f89c19435e4\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612560,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"53ef5599-df42-4f3d-90a1-8f89c19435e4\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612560,\"participants\":[{\"id\":999778,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":999779,\"user_id\":206,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"53ef5599-df42-4f3d-90a1-8f89c19435e4\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"53ef5599-df42-4f3d-90a1-8f89c19435e4\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"53ef5599-df42-4f3d-90a1-8f89c19435e4\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"53ef5599-df42-4f3d-90a1-8f89c19435e4\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"53ef5599-df42-4f3d-90a1-8f89c19435e4\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"447782589921@txt.staging.jiminny.com\"} {\"correlation_id\":\"53ef5599-df42-4f3d-90a1-8f89c19435e4\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"447782589921@txt.staging.jiminny.com\"} {\"correlation_id\":\"53ef5599-df42-4f3d-90a1-8f89c19435e4\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":10,\"delay\":12} {\"correlation_id\":\"53ef5599-df42-4f3d-90a1-8f89c19435e4\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612559,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34}} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612559} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612559,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612559,\"participants\":[{\"id\":999776,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999777,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612559,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":69,\"contact_id\":97,\"owner_id\":206} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":69,\"contact_id\":97} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":69,\"contact_id\":97,\"opportunity_id\":5011} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":2.07,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"6d49ffdc-2ed7-4eae-a1ee-e25ca95bbea8\",\"trace_id\":\"906573b5-005c-4820-8a32-3b0703ea86dd\"}\n[2026-05-11 11:09:35] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612559,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612559} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612559,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612559,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612558,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34}} {\"correlation_id\":\"34a7b1c6-be3b-4790-a04c-0311e25dadc8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612558} {\"correlation_id\":\"34a7b1c6-be3b-4790-a04c-0311e25dadc8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612558,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"34a7b1c6-be3b-4790-a04c-0311e25dadc8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612558,\"participants\":[{\"id\":999774,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999775,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"34a7b1c6-be3b-4790-a04c-0311e25dadc8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"34a7b1c6-be3b-4790-a04c-0311e25dadc8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"34a7b1c6-be3b-4790-a04c-0311e25dadc8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"34a7b1c6-be3b-4790-a04c-0311e25dadc8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"34a7b1c6-be3b-4790-a04c-0311e25dadc8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612558,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"34a7b1c6-be3b-4790-a04c-0311e25dadc8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"34a7b1c6-be3b-4790-a04c-0311e25dadc8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612558,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"34a7b1c6-be3b-4790-a04c-0311e25dadc8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612558} {\"correlation_id\":\"34a7b1c6-be3b-4790-a04c-0311e25dadc8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612558,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"34a7b1c6-be3b-4790-a04c-0311e25dadc8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612558,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34} {\"correlation_id\":\"34a7b1c6-be3b-4790-a04c-0311e25dadc8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612557,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34}} {\"correlation_id\":\"26d4d3d0-ebf8-44ad-a48f-24728e5539e0\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612557} {\"correlation_id\":\"26d4d3d0-ebf8-44ad-a48f-24728e5539e0\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612557,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"26d4d3d0-ebf8-44ad-a48f-24728e5539e0\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612557,\"participants\":[{\"id\":999772,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999773,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"26d4d3d0-ebf8-44ad-a48f-24728e5539e0\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"26d4d3d0-ebf8-44ad-a48f-24728e5539e0\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"26d4d3d0-ebf8-44ad-a48f-24728e5539e0\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"26d4d3d0-ebf8-44ad-a48f-24728e5539e0\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"26d4d3d0-ebf8-44ad-a48f-24728e5539e0\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612557,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"26d4d3d0-ebf8-44ad-a48f-24728e5539e0\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"26d4d3d0-ebf8-44ad-a48f-24728e5539e0\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612557,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"26d4d3d0-ebf8-44ad-a48f-24728e5539e0\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612557} {\"correlation_id\":\"26d4d3d0-ebf8-44ad-a48f-24728e5539e0\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612557,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"26d4d3d0-ebf8-44ad-a48f-24728e5539e0\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612557,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34} {\"correlation_id\":\"26d4d3d0-ebf8-44ad-a48f-24728e5539e0\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612556,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34}} {\"correlation_id\":\"406b7ad3-26d6-4b1b-9ad7-fff68622b149\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612556} {\"correlation_id\":\"406b7ad3-26d6-4b1b-9ad7-fff68622b149\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612556,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"406b7ad3-26d6-4b1b-9ad7-fff68622b149\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612556,\"participants\":[{\"id\":999770,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999771,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"406b7ad3-26d6-4b1b-9ad7-fff68622b149\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"406b7ad3-26d6-4b1b-9ad7-fff68622b149\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"406b7ad3-26d6-4b1b-9ad7-fff68622b149\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"406b7ad3-26d6-4b1b-9ad7-fff68622b149\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"406b7ad3-26d6-4b1b-9ad7-fff68622b149\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612556,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"406b7ad3-26d6-4b1b-9ad7-fff68622b149\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"406b7ad3-26d6-4b1b-9ad7-fff68622b149\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612556,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"406b7ad3-26d6-4b1b-9ad7-fff68622b149\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612556} {\"correlation_id\":\"406b7ad3-26d6-4b1b-9ad7-fff68622b149\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612556,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"406b7ad3-26d6-4b1b-9ad7-fff68622b149\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612556,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34} {\"correlation_id\":\"406b7ad3-26d6-4b1b-9ad7-fff68622b149\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612555,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34}} {\"correlation_id\":\"c15b7703-f17b-48e7-bf38-122448d79345\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612555} {\"correlation_id\":\"c15b7703-f17b-48e7-bf38-122448d79345\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612555,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"c15b7703-f17b-48e7-bf38-122448d79345\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612555,\"participants\":[{\"id\":999768,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999769,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"c15b7703-f17b-48e7-bf38-122448d79345\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"c15b7703-f17b-48e7-bf38-122448d79345\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"c15b7703-f17b-48e7-bf38-122448d79345\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"c15b7703-f17b-48e7-bf38-122448d79345\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"c15b7703-f17b-48e7-bf38-122448d79345\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612555,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"c15b7703-f17b-48e7-bf38-122448d79345\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"c15b7703-f17b-48e7-bf38-122448d79345\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612555,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"c15b7703-f17b-48e7-bf38-122448d79345\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612555} {\"correlation_id\":\"c15b7703-f17b-48e7-bf38-122448d79345\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612555,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"c15b7703-f17b-48e7-bf38-122448d79345\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612555,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34} {\"correlation_id\":\"c15b7703-f17b-48e7-bf38-122448d79345\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612554,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34}} {\"correlation_id\":\"c9cce71b-d96d-4117-b9fb-bb9672ae7c2b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612554} {\"correlation_id\":\"c9cce71b-d96d-4117-b9fb-bb9672ae7c2b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612554,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"c9cce71b-d96d-4117-b9fb-bb9672ae7c2b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612554,\"participants\":[{\"id\":999766,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999767,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"c9cce71b-d96d-4117-b9fb-bb9672ae7c2b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"c9cce71b-d96d-4117-b9fb-bb9672ae7c2b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"c9cce71b-d96d-4117-b9fb-bb9672ae7c2b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"c9cce71b-d96d-4117-b9fb-bb9672ae7c2b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"c9cce71b-d96d-4117-b9fb-bb9672ae7c2b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612554,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"c9cce71b-d96d-4117-b9fb-bb9672ae7c2b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"c9cce71b-d96d-4117-b9fb-bb9672ae7c2b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612554,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"c9cce71b-d96d-4117-b9fb-bb9672ae7c2b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612554} {\"correlation_id\":\"c9cce71b-d96d-4117-b9fb-bb9672ae7c2b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612554,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"c9cce71b-d96d-4117-b9fb-bb9672ae7c2b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612554,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34} {\"correlation_id\":\"c9cce71b-d96d-4117-b9fb-bb9672ae7c2b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612553,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34}} {\"correlation_id\":\"ffd2857e-be14-4ab1-8533-93b20116db02\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612553} {\"correlation_id\":\"ffd2857e-be14-4ab1-8533-93b20116db02\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612553,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ffd2857e-be14-4ab1-8533-93b20116db02\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612553,\"participants\":[{\"id\":999764,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999765,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"ffd2857e-be14-4ab1-8533-93b20116db02\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ffd2857e-be14-4ab1-8533-93b20116db02\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ffd2857e-be14-4ab1-8533-93b20116db02\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ffd2857e-be14-4ab1-8533-93b20116db02\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ffd2857e-be14-4ab1-8533-93b20116db02\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612553,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"ffd2857e-be14-4ab1-8533-93b20116db02\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"ffd2857e-be14-4ab1-8533-93b20116db02\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612553,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"ffd2857e-be14-4ab1-8533-93b20116db02\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612553} {\"correlation_id\":\"ffd2857e-be14-4ab1-8533-93b20116db02\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612553,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ffd2857e-be14-4ab1-8533-93b20116db02\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612553,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34} {\"correlation_id\":\"ffd2857e-be14-4ab1-8533-93b20116db02\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612552,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34}} {\"correlation_id\":\"7942c5ee-3b2d-4f76-8728-d5343cd7b02e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612552} {\"correlation_id\":\"7942c5ee-3b2d-4f76-8728-d5343cd7b02e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612552,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7942c5ee-3b2d-4f76-8728-d5343cd7b02e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612552,\"participants\":[{\"id\":999762,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999763,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"7942c5ee-3b2d-4f76-8728-d5343cd7b02e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7942c5ee-3b2d-4f76-8728-d5343cd7b02e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7942c5ee-3b2d-4f76-8728-d5343cd7b02e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7942c5ee-3b2d-4f76-8728-d5343cd7b02e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"7942c5ee-3b2d-4f76-8728-d5343cd7b02e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612552,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"7942c5ee-3b2d-4f76-8728-d5343cd7b02e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"7942c5ee-3b2d-4f76-8728-d5343cd7b02e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612552,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"7942c5ee-3b2d-4f76-8728-d5343cd7b02e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612552} {\"correlation_id\":\"7942c5ee-3b2d-4f76-8728-d5343cd7b02e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612552,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7942c5ee-3b2d-4f76-8728-d5343cd7b02e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612552,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34} {\"correlation_id\":\"7942c5ee-3b2d-4f76-8728-d5343cd7b02e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612551,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34}} {\"correlation_id\":\"8068bb0d-ab6d-48ee-abe2-d6cd116aba26\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612551} {\"correlation_id\":\"8068bb0d-ab6d-48ee-abe2-d6cd116aba26\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612551,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8068bb0d-ab6d-48ee-abe2-d6cd116aba26\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612551,\"participants\":[{\"id\":999760,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999761,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"8068bb0d-ab6d-48ee-abe2-d6cd116aba26\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8068bb0d-ab6d-48ee-abe2-d6cd116aba26\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8068bb0d-ab6d-48ee-abe2-d6cd116aba26\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"8068bb0d-ab6d-48ee-abe2-d6cd116aba26\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"8068bb0d-ab6d-48ee-abe2-d6cd116aba26\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612551,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"8068bb0d-ab6d-48ee-abe2-d6cd116aba26\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"8068bb0d-ab6d-48ee-abe2-d6cd116aba26\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612551,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"8068bb0d-ab6d-48ee-abe2-d6cd116aba26\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612551} {\"correlation_id\":\"8068bb0d-ab6d-48ee-abe2-d6cd116aba26\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612551,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8068bb0d-ab6d-48ee-abe2-d6cd116aba26\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612551,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34} {\"correlation_id\":\"8068bb0d-ab6d-48ee-abe2-d6cd116aba26\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:37] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612550,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34}} {\"correlation_id\":\"36bdbff9-cfb6-43af-b7c4-f2caafa8e794\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:37] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612550} {\"correlation_id\":\"36bdbff9-cfb6-43af-b7c4-f2caafa8e794\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:37] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612550,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"36bdbff9-cfb6-43af-b7c4-f2caafa8e794\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:37] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612550,\"participants\":[{\"id\":999758,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999759,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"36bdbff9-cfb6-43af-b7c4-f2caafa8e794\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:37] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"36bdbff9-cfb6-43af-b7c4-f2caafa8e794\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:37] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"36bdbff9-cfb6-43af-b7c4-f2caafa8e794\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:37] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"36bdbff9-cfb6-43af-b7c4-f2caafa8e794\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:37] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"36bdbff9-cfb6-43af-b7c4-f2caafa8e794\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:37] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612550,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"36bdbff9-cfb6-43af-b7c4-f2caafa8e794\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:37] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"36bdbff9-cfb6-43af-b7c4-f2caafa8e794\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:37] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612550,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"36bdbff9-cfb6-43af-b7c4-f2caafa8e794\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:38] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612550} {\"correlation_id\":\"36bdbff9-cfb6-43af-b7c4-f2caafa8e794\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:38] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612550,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"36bdbff9-cfb6-43af-b7c4-f2caafa8e794\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:38] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612550,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34} {\"correlation_id\":\"36bdbff9-cfb6-43af-b7c4-f2caafa8e794\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:38] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612549,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34}} {\"correlation_id\":\"c2ff3c6c-7380-4c1c-a1f5-50044a473ac8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:38] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612549} {\"correlation_id\":\"c2ff3c6c-7380-4c1c-a1f5-50044a473ac8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:38] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612549,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"c2ff3c6c-7380-4c1c-a1f5-50044a473ac8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:38] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612549,\"participants\":[{\"id\":999756,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999757,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"c2ff3c6c-7380-4c1c-a1f5-50044a473ac8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:39] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"c2ff3c6c-7380-4c1c-a1f5-50044a473ac8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:39] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"c2ff3c6c-7380-4c1c-a1f5-50044a473ac8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:39] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"c2ff3c6c-7380-4c1c-a1f5-50044a473ac8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"c2ff3c6c-7380-4c1c-a1f5-50044a473ac8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:39] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612549,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"c2ff3c6c-7380-4c1c-a1f5-50044a473ac8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:39] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"c2ff3c6c-7380-4c1c-a1f5-50044a473ac8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:39] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612549,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"c2ff3c6c-7380-4c1c-a1f5-50044a473ac8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:39] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612549} {\"correlation_id\":\"c2ff3c6c-7380-4c1c-a1f5-50044a473ac8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612549,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"c2ff3c6c-7380-4c1c-a1f5-50044a473ac8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:39] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612549,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34} {\"correlation_id\":\"c2ff3c6c-7380-4c1c-a1f5-50044a473ac8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:40] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612365,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"a9faea34-163e-4d2a-8007-c903951e3b79\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612365} {\"correlation_id\":\"a9faea34-163e-4d2a-8007-c903951e3b79\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612365,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a9faea34-163e-4d2a-8007-c903951e3b79\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:40] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612365,\"participants\":[{\"id\":999563,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999564,\"user_id\":206,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"a9faea34-163e-4d2a-8007-c903951e3b79\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a9faea34-163e-4d2a-8007-c903951e3b79\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a9faea34-163e-4d2a-8007-c903951e3b79\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"a9faea34-163e-4d2a-8007-c903951e3b79\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"a9faea34-163e-4d2a-8007-c903951e3b79\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"a9faea34-163e-4d2a-8007-c903951e3b79\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:40] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612365,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"a9faea34-163e-4d2a-8007-c903951e3b79\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612365,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"a9faea34-163e-4d2a-8007-c903951e3b79\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612365} {\"correlation_id\":\"a9faea34-163e-4d2a-8007-c903951e3b79\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612365,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a9faea34-163e-4d2a-8007-c903951e3b79\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:41] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612365,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"a9faea34-163e-4d2a-8007-c903951e3b79\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}","depth":4,"on_screen":true,"value":"[2026-05-11 11:08:45] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"43b1fb67-9aac-4fc6-9ced-689ecda5c548\",\"trace_id\":\"60028d0e-dcd8-496a-a7ba-3a04b8d646e2\"}\n[2026-05-11 11:08:45] local.INFO: [Commands/AsyncUpdateEsEntities] Starting ES update worker {\"pid\":72650,\"workerId\":\"\",\"target\":\"activities\"} {\"correlation_id\":\"6d49ffdc-2ed7-4eae-a1ee-e25ca95bbea8\",\"trace_id\":\"906573b5-005c-4820-8a32-3b0703ea86dd\"}\n[2026-05-11 11:08:46] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"43b1fb67-9aac-4fc6-9ced-689ecda5c548\",\"trace_id\":\"60028d0e-dcd8-496a-a7ba-3a04b8d646e2\"}\n[2026-05-11 11:09:12] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":615092,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"correlation_id\":\"f33d47cb-76c6-4c27-a641-48cbf69e623d\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:12] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":615092} {\"correlation_id\":\"f33d47cb-76c6-4c27-a641-48cbf69e623d\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:12] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":615092,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"f33d47cb-76c6-4c27-a641-48cbf69e623d\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:12] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":615092,\"participants\":[{\"id\":1004102,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":1004103,\"user_id\":89,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"f33d47cb-76c6-4c27-a641-48cbf69e623d\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:12] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f33d47cb-76c6-4c27-a641-48cbf69e623d\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:12] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f33d47cb-76c6-4c27-a641-48cbf69e623d\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:12] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"f33d47cb-76c6-4c27-a641-48cbf69e623d\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:12] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"f33d47cb-76c6-4c27-a641-48cbf69e623d\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:12] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"f33d47cb-76c6-4c27-a641-48cbf69e623d\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:13] local.INFO: [Hubspot] Failed to fetch contact {\"email\":\"nikolay.nikolov@jiminny.com\",\"reason\":\"[404] Client error: `GET https://api.hubapi.com/crm/v3/objects/contacts/nikolay.nikolov%40jiminny.com?properties=email%2Cfirstname%2Clastname%2Ccountry%2Cphone%2Cmobilephone%2Cjobtitle%2Chubspot_owner_id%2Cassociatedcompanyid%2Cphoto&archived=0&idProperty=email` resulted in a `404 Not Found` response\"} {\"correlation_id\":\"f33d47cb-76c6-4c27-a641-48cbf69e623d\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:13] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"f33d47cb-76c6-4c27-a641-48cbf69e623d\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:13] local.WARNING: [Hubspot] No retry-after header or known message, using default {\"exception_class\":\"SevenShores\\\\Hubspot\\\\Exceptions\\\\BadRequest\",\"message\":\"\"} {\"correlation_id\":\"f33d47cb-76c6-4c27-a641-48cbf69e623d\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:13] local.WARNING: [Hubspot] Received 429 from API {\"team_id\":2,\"config_id\":2,\"retry_after\":10,\"message\":\"\",\"reason\":\"Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response:\n{\\\"status\\\":\\\"error\\\",\\\"message\\\":\\\"You have reached your secondly limit.\\\",\\\"errorType\\\":\\\"RATE_LIMIT\\\",\\\"correlationId\\\":\\\"019e16ba-1 (truncated...)\n\"} {\"correlation_id\":\"f33d47cb-76c6-4c27-a641-48cbf69e623d\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:13] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":10,\"delay\":12} {\"correlation_id\":\"f33d47cb-76c6-4c27-a641-48cbf69e623d\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":614436,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"correlation_id\":\"ccafe863-7885-4971-96fb-87ef6dd4adf3\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614436} {\"correlation_id\":\"ccafe863-7885-4971-96fb-87ef6dd4adf3\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614436,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ccafe863-7885-4971-96fb-87ef6dd4adf3\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":614436,\"participants\":[{\"id\":1002751,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":1002752,\"user_id\":89,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"ccafe863-7885-4971-96fb-87ef6dd4adf3\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ccafe863-7885-4971-96fb-87ef6dd4adf3\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ccafe863-7885-4971-96fb-87ef6dd4adf3\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ccafe863-7885-4971-96fb-87ef6dd4adf3\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ccafe863-7885-4971-96fb-87ef6dd4adf3\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"ccafe863-7885-4971-96fb-87ef6dd4adf3\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"ccafe863-7885-4971-96fb-87ef6dd4adf3\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":10,\"delay\":10} {\"correlation_id\":\"ccafe863-7885-4971-96fb-87ef6dd4adf3\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":614382,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"correlation_id\":\"f00a4506-adfe-4fdc-b932-e6d2bc751fde\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614382} {\"correlation_id\":\"f00a4506-adfe-4fdc-b932-e6d2bc751fde\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614382,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"f00a4506-adfe-4fdc-b932-e6d2bc751fde\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":614382,\"participants\":[{\"id\":1002632,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":1002633,\"user_id\":89,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"f00a4506-adfe-4fdc-b932-e6d2bc751fde\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f00a4506-adfe-4fdc-b932-e6d2bc751fde\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f00a4506-adfe-4fdc-b932-e6d2bc751fde\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"f00a4506-adfe-4fdc-b932-e6d2bc751fde\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"f00a4506-adfe-4fdc-b932-e6d2bc751fde\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"f00a4506-adfe-4fdc-b932-e6d2bc751fde\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"f00a4506-adfe-4fdc-b932-e6d2bc751fde\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":10,\"delay\":12} {\"correlation_id\":\"f00a4506-adfe-4fdc-b932-e6d2bc751fde\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":614381,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"correlation_id\":\"36bd73f5-17f9-4f70-8254-2214543c7f8e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614381} {\"correlation_id\":\"36bd73f5-17f9-4f70-8254-2214543c7f8e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614381,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"36bd73f5-17f9-4f70-8254-2214543c7f8e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":614381,\"participants\":[{\"id\":1002630,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":1002631,\"user_id\":89,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"36bd73f5-17f9-4f70-8254-2214543c7f8e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"36bd73f5-17f9-4f70-8254-2214543c7f8e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"36bd73f5-17f9-4f70-8254-2214543c7f8e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"36bd73f5-17f9-4f70-8254-2214543c7f8e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"36bd73f5-17f9-4f70-8254-2214543c7f8e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"36bd73f5-17f9-4f70-8254-2214543c7f8e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"36bd73f5-17f9-4f70-8254-2214543c7f8e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":10,\"delay\":10} {\"correlation_id\":\"36bd73f5-17f9-4f70-8254-2214543c7f8e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":614378,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":6167,\"account_id\":null,\"opportunity_id\":null,\"stage_id\":null}} {\"correlation_id\":\"a4a3a058-ec22-4f04-bb14-a9bff18ce214\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614378} {\"correlation_id\":\"a4a3a058-ec22-4f04-bb14-a9bff18ce214\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614378,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a4a3a058-ec22-4f04-bb14-a9bff18ce214\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":614378,\"participants\":[{\"id\":1002623,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":1002624,\"user_id\":null,\"contact_id\":6167,\"lead_id\":null},{\"id\":1002625,\"user_id\":89,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"a4a3a058-ec22-4f04-bb14-a9bff18ce214\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a4a3a058-ec22-4f04-bb14-a9bff18ce214\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a4a3a058-ec22-4f04-bb14-a9bff18ce214\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"a4a3a058-ec22-4f04-bb14-a9bff18ce214\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"a4a3a058-ec22-4f04-bb14-a9bff18ce214\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"a4a3a058-ec22-4f04-bb14-a9bff18ce214\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"a4a3a058-ec22-4f04-bb14-a9bff18ce214\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":10,\"delay\":12} {\"correlation_id\":\"a4a3a058-ec22-4f04-bb14-a9bff18ce214\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613840,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613840} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613840,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613840,\"participants\":[{\"id\":1001764,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1001765,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":261} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":299} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613840,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613840,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613840} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613840,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613840,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"d86caa21-8980-460b-b2be-88292956cdb3\",\"trace_id\":\"6f80ed90-fa59-444e-a016-33a62019c6a4\"}\n[2026-05-11 11:09:15] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613833,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"ed230e3b-8ded-4591-bfe7-d4ead6f411c1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613833} {\"correlation_id\":\"ed230e3b-8ded-4591-bfe7-d4ead6f411c1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613833,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ed230e3b-8ded-4591-bfe7-d4ead6f411c1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613833,\"participants\":[{\"id\":1001750,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1001751,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"ed230e3b-8ded-4591-bfe7-d4ead6f411c1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"d86caa21-8980-460b-b2be-88292956cdb3\",\"trace_id\":\"6f80ed90-fa59-444e-a016-33a62019c6a4\"}\n[2026-05-11 11:09:15] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"d86caa21-8980-460b-b2be-88292956cdb3\",\"trace_id\":\"6f80ed90-fa59-444e-a016-33a62019c6a4\"}\n[2026-05-11 11:09:15] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ed230e3b-8ded-4591-bfe7-d4ead6f411c1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ed230e3b-8ded-4591-bfe7-d4ead6f411c1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ed230e3b-8ded-4591-bfe7-d4ead6f411c1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ed230e3b-8ded-4591-bfe7-d4ead6f411c1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"ed230e3b-8ded-4591-bfe7-d4ead6f411c1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613833,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"ed230e3b-8ded-4591-bfe7-d4ead6f411c1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613833,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"ed230e3b-8ded-4591-bfe7-d4ead6f411c1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613833} {\"correlation_id\":\"ed230e3b-8ded-4591-bfe7-d4ead6f411c1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613833,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ed230e3b-8ded-4591-bfe7-d4ead6f411c1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613833,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"ed230e3b-8ded-4591-bfe7-d4ead6f411c1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613827,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"d165f8f2-23f6-4f9a-90e7-7b600066818c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613827} {\"correlation_id\":\"d165f8f2-23f6-4f9a-90e7-7b600066818c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613827,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d165f8f2-23f6-4f9a-90e7-7b600066818c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613827,\"participants\":[{\"id\":1001734,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1001735,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"d165f8f2-23f6-4f9a-90e7-7b600066818c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d165f8f2-23f6-4f9a-90e7-7b600066818c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d165f8f2-23f6-4f9a-90e7-7b600066818c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"d165f8f2-23f6-4f9a-90e7-7b600066818c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"d165f8f2-23f6-4f9a-90e7-7b600066818c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"d165f8f2-23f6-4f9a-90e7-7b600066818c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613827,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"d165f8f2-23f6-4f9a-90e7-7b600066818c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613827,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"d165f8f2-23f6-4f9a-90e7-7b600066818c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613827} {\"correlation_id\":\"d165f8f2-23f6-4f9a-90e7-7b600066818c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613827,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d165f8f2-23f6-4f9a-90e7-7b600066818c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613827,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"d165f8f2-23f6-4f9a-90e7-7b600066818c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613826,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"1816f96e-c36b-474a-8f46-bc8c71bb0079\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613826} {\"correlation_id\":\"1816f96e-c36b-474a-8f46-bc8c71bb0079\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613826,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1816f96e-c36b-474a-8f46-bc8c71bb0079\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613826,\"participants\":[{\"id\":1001732,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1001733,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"1816f96e-c36b-474a-8f46-bc8c71bb0079\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1816f96e-c36b-474a-8f46-bc8c71bb0079\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1816f96e-c36b-474a-8f46-bc8c71bb0079\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1816f96e-c36b-474a-8f46-bc8c71bb0079\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1816f96e-c36b-474a-8f46-bc8c71bb0079\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"1816f96e-c36b-474a-8f46-bc8c71bb0079\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613826,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"1816f96e-c36b-474a-8f46-bc8c71bb0079\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613826,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"1816f96e-c36b-474a-8f46-bc8c71bb0079\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613826} {\"correlation_id\":\"1816f96e-c36b-474a-8f46-bc8c71bb0079\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613826,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1816f96e-c36b-474a-8f46-bc8c71bb0079\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613826,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"1816f96e-c36b-474a-8f46-bc8c71bb0079\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613820,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"a2b1cf94-6665-4574-a821-fcd845d290dc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613820} {\"correlation_id\":\"a2b1cf94-6665-4574-a821-fcd845d290dc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613820,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a2b1cf94-6665-4574-a821-fcd845d290dc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613820,\"participants\":[{\"id\":1001721,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1001722,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"a2b1cf94-6665-4574-a821-fcd845d290dc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a2b1cf94-6665-4574-a821-fcd845d290dc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a2b1cf94-6665-4574-a821-fcd845d290dc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"a2b1cf94-6665-4574-a821-fcd845d290dc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"a2b1cf94-6665-4574-a821-fcd845d290dc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"a2b1cf94-6665-4574-a821-fcd845d290dc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613820,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"a2b1cf94-6665-4574-a821-fcd845d290dc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613820,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"a2b1cf94-6665-4574-a821-fcd845d290dc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613820} {\"correlation_id\":\"a2b1cf94-6665-4574-a821-fcd845d290dc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613820,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a2b1cf94-6665-4574-a821-fcd845d290dc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613820,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"a2b1cf94-6665-4574-a821-fcd845d290dc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613818,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"7194ba37-7af3-4aa0-80a3-14b38431fd39\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613818} {\"correlation_id\":\"7194ba37-7af3-4aa0-80a3-14b38431fd39\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613818,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7194ba37-7af3-4aa0-80a3-14b38431fd39\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613818,\"participants\":[{\"id\":1001717,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1001718,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"7194ba37-7af3-4aa0-80a3-14b38431fd39\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7194ba37-7af3-4aa0-80a3-14b38431fd39\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7194ba37-7af3-4aa0-80a3-14b38431fd39\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7194ba37-7af3-4aa0-80a3-14b38431fd39\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"7194ba37-7af3-4aa0-80a3-14b38431fd39\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"7194ba37-7af3-4aa0-80a3-14b38431fd39\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613818,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"7194ba37-7af3-4aa0-80a3-14b38431fd39\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613818,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"7194ba37-7af3-4aa0-80a3-14b38431fd39\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613818} {\"correlation_id\":\"7194ba37-7af3-4aa0-80a3-14b38431fd39\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613818,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7194ba37-7af3-4aa0-80a3-14b38431fd39\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613818,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"7194ba37-7af3-4aa0-80a3-14b38431fd39\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613812,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"1fe899e0-6ad7-4159-b5f9-6f34b32d31d6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613812} {\"correlation_id\":\"1fe899e0-6ad7-4159-b5f9-6f34b32d31d6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613812,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1fe899e0-6ad7-4159-b5f9-6f34b32d31d6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613812,\"participants\":[{\"id\":1001705,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1001706,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"1fe899e0-6ad7-4159-b5f9-6f34b32d31d6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1fe899e0-6ad7-4159-b5f9-6f34b32d31d6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1fe899e0-6ad7-4159-b5f9-6f34b32d31d6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1fe899e0-6ad7-4159-b5f9-6f34b32d31d6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1fe899e0-6ad7-4159-b5f9-6f34b32d31d6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"1fe899e0-6ad7-4159-b5f9-6f34b32d31d6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613812,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"1fe899e0-6ad7-4159-b5f9-6f34b32d31d6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613812,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"1fe899e0-6ad7-4159-b5f9-6f34b32d31d6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613812} {\"correlation_id\":\"1fe899e0-6ad7-4159-b5f9-6f34b32d31d6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613812,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1fe899e0-6ad7-4159-b5f9-6f34b32d31d6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613812,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"1fe899e0-6ad7-4159-b5f9-6f34b32d31d6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613807,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4484,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613807} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613807,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613807,\"participants\":[{\"id\":1001690,\"user_id\":253,\"contact_id\":null,\"lead_id\":null},{\"id\":1001691,\"user_id\":null,\"contact_id\":4484,\"lead_id\":null}]} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613807,\"team_id\":2,\"email\":\"preslava.ivanova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":243,\"contact_id\":4484,\"owner_id\":253} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":243,\"contact_id\":4484} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":243,\"contact_id\":4484,\"opportunity_id\":276} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":1.06,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"6d49ffdc-2ed7-4eae-a1ee-e25ca95bbea8\",\"trace_id\":\"906573b5-005c-4820-8a32-3b0703ea86dd\"}\n[2026-05-11 11:09:17] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"tsvetomir.banovski@gmail.com\"} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613807,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613807} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613807,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613807,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4484,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613806,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34}} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613806} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613806,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613806,\"participants\":[{\"id\":1001688,\"user_id\":253,\"contact_id\":null,\"lead_id\":null},{\"id\":1001689,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null}]} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613806,\"team_id\":2,\"email\":\"preslava.ivanova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":253} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":244,\"contact_id\":4487} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":350} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613806,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613806} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613806,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613806,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613805,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34}} {\"correlation_id\":\"e6a724a6-dc6e-4440-ab48-641336d6ca17\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613805} {\"correlation_id\":\"e6a724a6-dc6e-4440-ab48-641336d6ca17\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613805,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e6a724a6-dc6e-4440-ab48-641336d6ca17\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613805,\"participants\":[{\"id\":1001686,\"user_id\":253,\"contact_id\":null,\"lead_id\":null},{\"id\":1001687,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null}]} {\"correlation_id\":\"e6a724a6-dc6e-4440-ab48-641336d6ca17\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e6a724a6-dc6e-4440-ab48-641336d6ca17\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e6a724a6-dc6e-4440-ab48-641336d6ca17\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"e6a724a6-dc6e-4440-ab48-641336d6ca17\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"e6a724a6-dc6e-4440-ab48-641336d6ca17\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613805,\"team_id\":2,\"email\":\"preslava.ivanova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"e6a724a6-dc6e-4440-ab48-641336d6ca17\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"e6a724a6-dc6e-4440-ab48-641336d6ca17\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613805,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"e6a724a6-dc6e-4440-ab48-641336d6ca17\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613805} {\"correlation_id\":\"e6a724a6-dc6e-4440-ab48-641336d6ca17\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613805,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e6a724a6-dc6e-4440-ab48-641336d6ca17\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613805,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34} {\"correlation_id\":\"e6a724a6-dc6e-4440-ab48-641336d6ca17\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613698,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"67158d25-23dc-4314-8813-caa3c43fa3f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613698} {\"correlation_id\":\"67158d25-23dc-4314-8813-caa3c43fa3f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613698,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"67158d25-23dc-4314-8813-caa3c43fa3f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613698,\"participants\":[{\"id\":1001667,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1001668,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"67158d25-23dc-4314-8813-caa3c43fa3f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"67158d25-23dc-4314-8813-caa3c43fa3f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"67158d25-23dc-4314-8813-caa3c43fa3f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"67158d25-23dc-4314-8813-caa3c43fa3f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"67158d25-23dc-4314-8813-caa3c43fa3f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"67158d25-23dc-4314-8813-caa3c43fa3f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613698,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"67158d25-23dc-4314-8813-caa3c43fa3f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613698,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"67158d25-23dc-4314-8813-caa3c43fa3f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613698} {\"correlation_id\":\"67158d25-23dc-4314-8813-caa3c43fa3f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613698,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"67158d25-23dc-4314-8813-caa3c43fa3f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613698,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"67158d25-23dc-4314-8813-caa3c43fa3f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613697,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"8d2a290e-88e6-494a-91c2-f63f0338f30f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613697} {\"correlation_id\":\"8d2a290e-88e6-494a-91c2-f63f0338f30f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613697,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8d2a290e-88e6-494a-91c2-f63f0338f30f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613697,\"participants\":[{\"id\":1001665,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1001666,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"8d2a290e-88e6-494a-91c2-f63f0338f30f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8d2a290e-88e6-494a-91c2-f63f0338f30f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8d2a290e-88e6-494a-91c2-f63f0338f30f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"8d2a290e-88e6-494a-91c2-f63f0338f30f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"8d2a290e-88e6-494a-91c2-f63f0338f30f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"8d2a290e-88e6-494a-91c2-f63f0338f30f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613697,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"8d2a290e-88e6-494a-91c2-f63f0338f30f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613697,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"8d2a290e-88e6-494a-91c2-f63f0338f30f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613697} {\"correlation_id\":\"8d2a290e-88e6-494a-91c2-f63f0338f30f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613697,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8d2a290e-88e6-494a-91c2-f63f0338f30f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613697,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"8d2a290e-88e6-494a-91c2-f63f0338f30f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613696,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"d1c50e93-0488-4315-a739-f89181b77d87\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613696} {\"correlation_id\":\"d1c50e93-0488-4315-a739-f89181b77d87\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613696,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d1c50e93-0488-4315-a739-f89181b77d87\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613696,\"participants\":[{\"id\":1001663,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1001664,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"d1c50e93-0488-4315-a739-f89181b77d87\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d1c50e93-0488-4315-a739-f89181b77d87\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d1c50e93-0488-4315-a739-f89181b77d87\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"d1c50e93-0488-4315-a739-f89181b77d87\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"d1c50e93-0488-4315-a739-f89181b77d87\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"d1c50e93-0488-4315-a739-f89181b77d87\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613696,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"d1c50e93-0488-4315-a739-f89181b77d87\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613696,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"d1c50e93-0488-4315-a739-f89181b77d87\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613696} {\"correlation_id\":\"d1c50e93-0488-4315-a739-f89181b77d87\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613696,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d1c50e93-0488-4315-a739-f89181b77d87\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613696,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"d1c50e93-0488-4315-a739-f89181b77d87\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613695,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"6dbd1e2c-b89e-47b6-9c2f-d9d7a56b5383\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613695} {\"correlation_id\":\"6dbd1e2c-b89e-47b6-9c2f-d9d7a56b5383\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613695,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"6dbd1e2c-b89e-47b6-9c2f-d9d7a56b5383\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613695,\"participants\":[{\"id\":1001661,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1001662,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"6dbd1e2c-b89e-47b6-9c2f-d9d7a56b5383\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"6dbd1e2c-b89e-47b6-9c2f-d9d7a56b5383\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"6dbd1e2c-b89e-47b6-9c2f-d9d7a56b5383\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"6dbd1e2c-b89e-47b6-9c2f-d9d7a56b5383\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"6dbd1e2c-b89e-47b6-9c2f-d9d7a56b5383\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"6dbd1e2c-b89e-47b6-9c2f-d9d7a56b5383\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613695,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"6dbd1e2c-b89e-47b6-9c2f-d9d7a56b5383\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613695,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"6dbd1e2c-b89e-47b6-9c2f-d9d7a56b5383\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613695} {\"correlation_id\":\"6dbd1e2c-b89e-47b6-9c2f-d9d7a56b5383\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613695,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"6dbd1e2c-b89e-47b6-9c2f-d9d7a56b5383\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613695,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"6dbd1e2c-b89e-47b6-9c2f-d9d7a56b5383\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613694,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"cd14d297-e2e1-425f-b745-361ca50df005\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613694} {\"correlation_id\":\"cd14d297-e2e1-425f-b745-361ca50df005\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613694,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cd14d297-e2e1-425f-b745-361ca50df005\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613694,\"participants\":[{\"id\":1001659,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1001660,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"cd14d297-e2e1-425f-b745-361ca50df005\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cd14d297-e2e1-425f-b745-361ca50df005\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cd14d297-e2e1-425f-b745-361ca50df005\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cd14d297-e2e1-425f-b745-361ca50df005\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"cd14d297-e2e1-425f-b745-361ca50df005\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"cd14d297-e2e1-425f-b745-361ca50df005\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613694,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"cd14d297-e2e1-425f-b745-361ca50df005\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613694,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"cd14d297-e2e1-425f-b745-361ca50df005\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613694} {\"correlation_id\":\"cd14d297-e2e1-425f-b745-361ca50df005\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613694,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cd14d297-e2e1-425f-b745-361ca50df005\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613694,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"cd14d297-e2e1-425f-b745-361ca50df005\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613157,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34}} {\"correlation_id\":\"ed6d3fa0-08c4-412f-b60d-4582c6dfa704\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613157} {\"correlation_id\":\"ed6d3fa0-08c4-412f-b60d-4582c6dfa704\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613157,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ed6d3fa0-08c4-412f-b60d-4582c6dfa704\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613157,\"participants\":[{\"id\":1000746,\"user_id\":253,\"contact_id\":null,\"lead_id\":null},{\"id\":1000747,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null}]} {\"correlation_id\":\"ed6d3fa0-08c4-412f-b60d-4582c6dfa704\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ed6d3fa0-08c4-412f-b60d-4582c6dfa704\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ed6d3fa0-08c4-412f-b60d-4582c6dfa704\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ed6d3fa0-08c4-412f-b60d-4582c6dfa704\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ed6d3fa0-08c4-412f-b60d-4582c6dfa704\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613157,\"team_id\":2,\"email\":\"preslava.ivanova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"ed6d3fa0-08c4-412f-b60d-4582c6dfa704\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"ed6d3fa0-08c4-412f-b60d-4582c6dfa704\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613157,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"ed6d3fa0-08c4-412f-b60d-4582c6dfa704\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613157} {\"correlation_id\":\"ed6d3fa0-08c4-412f-b60d-4582c6dfa704\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613157,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ed6d3fa0-08c4-412f-b60d-4582c6dfa704\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613157,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34} {\"correlation_id\":\"ed6d3fa0-08c4-412f-b60d-4582c6dfa704\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613156,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34}} {\"correlation_id\":\"77af6469-661f-4d4b-b741-a5b059c8b181\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613156} {\"correlation_id\":\"77af6469-661f-4d4b-b741-a5b059c8b181\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613156,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"77af6469-661f-4d4b-b741-a5b059c8b181\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613156,\"participants\":[{\"id\":1000744,\"user_id\":253,\"contact_id\":null,\"lead_id\":null},{\"id\":1000745,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null}]} {\"correlation_id\":\"77af6469-661f-4d4b-b741-a5b059c8b181\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"77af6469-661f-4d4b-b741-a5b059c8b181\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"77af6469-661f-4d4b-b741-a5b059c8b181\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"77af6469-661f-4d4b-b741-a5b059c8b181\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"77af6469-661f-4d4b-b741-a5b059c8b181\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613156,\"team_id\":2,\"email\":\"preslava.ivanova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"77af6469-661f-4d4b-b741-a5b059c8b181\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"77af6469-661f-4d4b-b741-a5b059c8b181\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613156,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"77af6469-661f-4d4b-b741-a5b059c8b181\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613156} {\"correlation_id\":\"77af6469-661f-4d4b-b741-a5b059c8b181\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613156,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"77af6469-661f-4d4b-b741-a5b059c8b181\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613156,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34} {\"correlation_id\":\"77af6469-661f-4d4b-b741-a5b059c8b181\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613155,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34}} {\"correlation_id\":\"6cd64b7d-2826-41b3-83e4-000c5cd88462\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613155} {\"correlation_id\":\"6cd64b7d-2826-41b3-83e4-000c5cd88462\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613155,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"6cd64b7d-2826-41b3-83e4-000c5cd88462\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613155,\"participants\":[{\"id\":1000742,\"user_id\":253,\"contact_id\":null,\"lead_id\":null},{\"id\":1000743,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null}]} {\"correlation_id\":\"6cd64b7d-2826-41b3-83e4-000c5cd88462\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"6cd64b7d-2826-41b3-83e4-000c5cd88462\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"6cd64b7d-2826-41b3-83e4-000c5cd88462\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"6cd64b7d-2826-41b3-83e4-000c5cd88462\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"6cd64b7d-2826-41b3-83e4-000c5cd88462\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613155,\"team_id\":2,\"email\":\"preslava.ivanova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"6cd64b7d-2826-41b3-83e4-000c5cd88462\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"6cd64b7d-2826-41b3-83e4-000c5cd88462\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613155,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"6cd64b7d-2826-41b3-83e4-000c5cd88462\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613155} {\"correlation_id\":\"6cd64b7d-2826-41b3-83e4-000c5cd88462\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613155,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"6cd64b7d-2826-41b3-83e4-000c5cd88462\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613155,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34} {\"correlation_id\":\"6cd64b7d-2826-41b3-83e4-000c5cd88462\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613130,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"8d0dfbe8-30bd-4332-bf52-762b3a44300b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613130} {\"correlation_id\":\"8d0dfbe8-30bd-4332-bf52-762b3a44300b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613130,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8d0dfbe8-30bd-4332-bf52-762b3a44300b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613130,\"participants\":[{\"id\":1000693,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1000694,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"8d0dfbe8-30bd-4332-bf52-762b3a44300b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8d0dfbe8-30bd-4332-bf52-762b3a44300b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8d0dfbe8-30bd-4332-bf52-762b3a44300b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"8d0dfbe8-30bd-4332-bf52-762b3a44300b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"8d0dfbe8-30bd-4332-bf52-762b3a44300b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"8d0dfbe8-30bd-4332-bf52-762b3a44300b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613130,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"8d0dfbe8-30bd-4332-bf52-762b3a44300b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613130,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"8d0dfbe8-30bd-4332-bf52-762b3a44300b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613130} {\"correlation_id\":\"8d0dfbe8-30bd-4332-bf52-762b3a44300b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613130,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8d0dfbe8-30bd-4332-bf52-762b3a44300b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613130,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"8d0dfbe8-30bd-4332-bf52-762b3a44300b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612924,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":165,\"stage_id\":89}} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612924} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612924,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612924,\"participants\":[{\"id\":1000290,\"user_id\":19,\"contact_id\":null,\"lead_id\":null},{\"id\":1000291,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612924,\"team_id\":2,\"email\":\"james.graham@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":69,\"contact_id\":97,\"owner_id\":19} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":69,\"contact_id\":97,\"opportunity_id\":165} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612924,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612924} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612924,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612924,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":165,\"stage_id\":89} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:23] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612923,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":165,\"stage_id\":89}} {\"correlation_id\":\"773e5722-a5c7-48ec-b0d8-11b3aa2aa37a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:23] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612923} {\"correlation_id\":\"773e5722-a5c7-48ec-b0d8-11b3aa2aa37a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:23] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612923,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"773e5722-a5c7-48ec-b0d8-11b3aa2aa37a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:23] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612923,\"participants\":[{\"id\":1000288,\"user_id\":19,\"contact_id\":null,\"lead_id\":null},{\"id\":1000289,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"773e5722-a5c7-48ec-b0d8-11b3aa2aa37a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:23] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"773e5722-a5c7-48ec-b0d8-11b3aa2aa37a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:23] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"773e5722-a5c7-48ec-b0d8-11b3aa2aa37a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:23] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"773e5722-a5c7-48ec-b0d8-11b3aa2aa37a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:23] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"773e5722-a5c7-48ec-b0d8-11b3aa2aa37a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:23] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612923,\"team_id\":2,\"email\":\"james.graham@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"773e5722-a5c7-48ec-b0d8-11b3aa2aa37a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:23] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"773e5722-a5c7-48ec-b0d8-11b3aa2aa37a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:23] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612923,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"773e5722-a5c7-48ec-b0d8-11b3aa2aa37a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:24] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612923} {\"correlation_id\":\"773e5722-a5c7-48ec-b0d8-11b3aa2aa37a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:24] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612923,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"773e5722-a5c7-48ec-b0d8-11b3aa2aa37a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:24] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612923,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":165,\"stage_id\":89} {\"correlation_id\":\"773e5722-a5c7-48ec-b0d8-11b3aa2aa37a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:24] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612922,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":165,\"stage_id\":89}} {\"correlation_id\":\"7d6f9c8c-16e0-4f84-b07d-adddfa5c739f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:24] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612922} {\"correlation_id\":\"7d6f9c8c-16e0-4f84-b07d-adddfa5c739f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:24] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612922,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7d6f9c8c-16e0-4f84-b07d-adddfa5c739f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:24] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612922,\"participants\":[{\"id\":1000286,\"user_id\":19,\"contact_id\":null,\"lead_id\":null},{\"id\":1000287,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"7d6f9c8c-16e0-4f84-b07d-adddfa5c739f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:24] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7d6f9c8c-16e0-4f84-b07d-adddfa5c739f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:24] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7d6f9c8c-16e0-4f84-b07d-adddfa5c739f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7d6f9c8c-16e0-4f84-b07d-adddfa5c739f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"7d6f9c8c-16e0-4f84-b07d-adddfa5c739f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612922,\"team_id\":2,\"email\":\"james.graham@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"7d6f9c8c-16e0-4f84-b07d-adddfa5c739f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"7d6f9c8c-16e0-4f84-b07d-adddfa5c739f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612922,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"7d6f9c8c-16e0-4f84-b07d-adddfa5c739f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612922} {\"correlation_id\":\"7d6f9c8c-16e0-4f84-b07d-adddfa5c739f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612922,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7d6f9c8c-16e0-4f84-b07d-adddfa5c739f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612922,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":165,\"stage_id\":89} {\"correlation_id\":\"7d6f9c8c-16e0-4f84-b07d-adddfa5c739f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612847,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"462c34b9-0b57-4e81-a9e2-5ce4a6900814\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612847} {\"correlation_id\":\"462c34b9-0b57-4e81-a9e2-5ce4a6900814\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612847,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"462c34b9-0b57-4e81-a9e2-5ce4a6900814\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612847,\"participants\":[{\"id\":1000130,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":1000131,\"user_id\":261,\"contact_id\":null,\"lead_id\":null},{\"id\":1000151,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null}]} {\"correlation_id\":\"462c34b9-0b57-4e81-a9e2-5ce4a6900814\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"462c34b9-0b57-4e81-a9e2-5ce4a6900814\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"462c34b9-0b57-4e81-a9e2-5ce4a6900814\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"462c34b9-0b57-4e81-a9e2-5ce4a6900814\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"462c34b9-0b57-4e81-a9e2-5ce4a6900814\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"correlation_id\":\"462c34b9-0b57-4e81-a9e2-5ce4a6900814\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"503de928-3a1a-4314-a23f-ca2625111f7f\",\"trace_id\":\"7ee54e65-014c-4ae3-821a-dc0488dc10ed\"}\n[2026-05-11 11:09:26] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"503de928-3a1a-4314-a23f-ca2625111f7f\",\"trace_id\":\"7ee54e65-014c-4ae3-821a-dc0488dc10ed\"}\n[2026-05-11 11:09:26] local.INFO: [Hubspot] Failed to fetch contact {\"email\":\"adelina.petrova@jiminny.com\",\"reason\":\"[404] Client error: `GET https://api.hubapi.com/crm/v3/objects/contacts/adelina.petrova%40jiminny.com?properties=email%2Cfirstname%2Clastname%2Ccountry%2Cphone%2Cmobilephone%2Cjobtitle%2Chubspot_owner_id%2Cassociatedcompanyid%2Cphoto&archived=0&idProperty=email` resulted in a `404 Not Found` response\"} {\"correlation_id\":\"462c34b9-0b57-4e81-a9e2-5ce4a6900814\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:26] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"correlation_id\":\"462c34b9-0b57-4e81-a9e2-5ce4a6900814\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:26] local.WARNING: [Hubspot] No retry-after header or known message, using default {\"exception_class\":\"SevenShores\\\\Hubspot\\\\Exceptions\\\\BadRequest\",\"message\":\"\"} {\"correlation_id\":\"462c34b9-0b57-4e81-a9e2-5ce4a6900814\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:26] local.WARNING: [Hubspot] Received 429 from API {\"team_id\":2,\"config_id\":2,\"retry_after\":10,\"message\":\"\",\"reason\":\"Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response:\n{\\\"status\\\":\\\"error\\\",\\\"message\\\":\\\"You have reached your secondly limit.\\\",\\\"errorType\\\":\\\"RATE_LIMIT\\\",\\\"correlationId\\\":\\\"019e16ba-4 (truncated...)\n\"} {\"correlation_id\":\"462c34b9-0b57-4e81-a9e2-5ce4a6900814\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:26] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":10,\"delay\":14} {\"correlation_id\":\"462c34b9-0b57-4e81-a9e2-5ce4a6900814\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:26] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612822,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"ca259dfb-7b24-4406-9b61-a4f28761020b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:26] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612822} {\"correlation_id\":\"ca259dfb-7b24-4406-9b61-a4f28761020b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:26] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612822,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ca259dfb-7b24-4406-9b61-a4f28761020b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:26] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612822,\"participants\":[{\"id\":1000080,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1000081,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"ca259dfb-7b24-4406-9b61-a4f28761020b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ca259dfb-7b24-4406-9b61-a4f28761020b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ca259dfb-7b24-4406-9b61-a4f28761020b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ca259dfb-7b24-4406-9b61-a4f28761020b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ca259dfb-7b24-4406-9b61-a4f28761020b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"ca259dfb-7b24-4406-9b61-a4f28761020b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612822,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"ca259dfb-7b24-4406-9b61-a4f28761020b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612822,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"ca259dfb-7b24-4406-9b61-a4f28761020b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612822} {\"correlation_id\":\"ca259dfb-7b24-4406-9b61-a4f28761020b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612822,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ca259dfb-7b24-4406-9b61-a4f28761020b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612822,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"ca259dfb-7b24-4406-9b61-a4f28761020b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612819,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"cd602b18-88a5-4ea9-afef-e52be017fc0f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612819} {\"correlation_id\":\"cd602b18-88a5-4ea9-afef-e52be017fc0f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612819,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cd602b18-88a5-4ea9-afef-e52be017fc0f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612819,\"participants\":[{\"id\":1000073,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1000074,\"user_id\":261,\"contact_id\":null,\"lead_id\":null},{\"id\":1000075,\"user_id\":null,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"cd602b18-88a5-4ea9-afef-e52be017fc0f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cd602b18-88a5-4ea9-afef-e52be017fc0f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cd602b18-88a5-4ea9-afef-e52be017fc0f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cd602b18-88a5-4ea9-afef-e52be017fc0f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"cd602b18-88a5-4ea9-afef-e52be017fc0f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"cd602b18-88a5-4ea9-afef-e52be017fc0f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612819,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"cd602b18-88a5-4ea9-afef-e52be017fc0f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"correlation_id\":\"cd602b18-88a5-4ea9-afef-e52be017fc0f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"correlation_id\":\"cd602b18-88a5-4ea9-afef-e52be017fc0f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":10,\"delay\":10} {\"correlation_id\":\"cd602b18-88a5-4ea9-afef-e52be017fc0f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612673,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"d86174e3-e3b0-41d6-b9f5-97de4ca4da9f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612673} {\"correlation_id\":\"d86174e3-e3b0-41d6-b9f5-97de4ca4da9f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612673,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d86174e3-e3b0-41d6-b9f5-97de4ca4da9f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612673,\"participants\":[{\"id\":999993,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":999994,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"d86174e3-e3b0-41d6-b9f5-97de4ca4da9f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d86174e3-e3b0-41d6-b9f5-97de4ca4da9f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d86174e3-e3b0-41d6-b9f5-97de4ca4da9f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"d86174e3-e3b0-41d6-b9f5-97de4ca4da9f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"d86174e3-e3b0-41d6-b9f5-97de4ca4da9f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"d86174e3-e3b0-41d6-b9f5-97de4ca4da9f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612673,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"d86174e3-e3b0-41d6-b9f5-97de4ca4da9f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612673,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"d86174e3-e3b0-41d6-b9f5-97de4ca4da9f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612673} {\"correlation_id\":\"d86174e3-e3b0-41d6-b9f5-97de4ca4da9f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612673,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d86174e3-e3b0-41d6-b9f5-97de4ca4da9f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612673,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"d86174e3-e3b0-41d6-b9f5-97de4ca4da9f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612642,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"2f9f8923-a6e3-4e5b-a1ae-cdea42bb3cda\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612642} {\"correlation_id\":\"2f9f8923-a6e3-4e5b-a1ae-cdea42bb3cda\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612642,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2f9f8923-a6e3-4e5b-a1ae-cdea42bb3cda\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612642,\"participants\":[{\"id\":999935,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":999936,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"2f9f8923-a6e3-4e5b-a1ae-cdea42bb3cda\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2f9f8923-a6e3-4e5b-a1ae-cdea42bb3cda\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2f9f8923-a6e3-4e5b-a1ae-cdea42bb3cda\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"2f9f8923-a6e3-4e5b-a1ae-cdea42bb3cda\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"2f9f8923-a6e3-4e5b-a1ae-cdea42bb3cda\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"2f9f8923-a6e3-4e5b-a1ae-cdea42bb3cda\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612642,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"2f9f8923-a6e3-4e5b-a1ae-cdea42bb3cda\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612642,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"2f9f8923-a6e3-4e5b-a1ae-cdea42bb3cda\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612642} {\"correlation_id\":\"2f9f8923-a6e3-4e5b-a1ae-cdea42bb3cda\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612642,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2f9f8923-a6e3-4e5b-a1ae-cdea42bb3cda\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612642,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"2f9f8923-a6e3-4e5b-a1ae-cdea42bb3cda\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612598,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612598} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612598,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612598,\"participants\":[{\"id\":999857,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999858,\"user_id\":206,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":243,\"contact_id\":4491,\"owner_id\":206} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":243,\"contact_id\":4491} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":243,\"contact_id\":4491,\"opportunity_id\":276} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612598,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612598,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612598} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612598,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612598,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":5.94,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"6d49ffdc-2ed7-4eae-a1ee-e25ca95bbea8\",\"trace_id\":\"906573b5-005c-4820-8a32-3b0703ea86dd\"}\n[2026-05-11 11:09:28] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612597,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"c69a3a24-bab5-4d56-887b-01111944b3a2\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612597} {\"correlation_id\":\"c69a3a24-bab5-4d56-887b-01111944b3a2\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612597,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"c69a3a24-bab5-4d56-887b-01111944b3a2\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612597,\"participants\":[{\"id\":999855,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999856,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null}]} {\"correlation_id\":\"c69a3a24-bab5-4d56-887b-01111944b3a2\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"c69a3a24-bab5-4d56-887b-01111944b3a2\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"c69a3a24-bab5-4d56-887b-01111944b3a2\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"c69a3a24-bab5-4d56-887b-01111944b3a2\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"c69a3a24-bab5-4d56-887b-01111944b3a2\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612597,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"c69a3a24-bab5-4d56-887b-01111944b3a2\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"c69a3a24-bab5-4d56-887b-01111944b3a2\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612597,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"c69a3a24-bab5-4d56-887b-01111944b3a2\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612597} {\"correlation_id\":\"c69a3a24-bab5-4d56-887b-01111944b3a2\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612597,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"c69a3a24-bab5-4d56-887b-01111944b3a2\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612597,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"c69a3a24-bab5-4d56-887b-01111944b3a2\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612596,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"0da9fc28-653b-406f-bafe-5d78010cb3da\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612596} {\"correlation_id\":\"0da9fc28-653b-406f-bafe-5d78010cb3da\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612596,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0da9fc28-653b-406f-bafe-5d78010cb3da\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612596,\"participants\":[{\"id\":999853,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999854,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null}]} {\"correlation_id\":\"0da9fc28-653b-406f-bafe-5d78010cb3da\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0da9fc28-653b-406f-bafe-5d78010cb3da\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0da9fc28-653b-406f-bafe-5d78010cb3da\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0da9fc28-653b-406f-bafe-5d78010cb3da\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0da9fc28-653b-406f-bafe-5d78010cb3da\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612596,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"0da9fc28-653b-406f-bafe-5d78010cb3da\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"0da9fc28-653b-406f-bafe-5d78010cb3da\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612596,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"0da9fc28-653b-406f-bafe-5d78010cb3da\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612596} {\"correlation_id\":\"0da9fc28-653b-406f-bafe-5d78010cb3da\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612596,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0da9fc28-653b-406f-bafe-5d78010cb3da\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612596,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"0da9fc28-653b-406f-bafe-5d78010cb3da\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612595,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"f7dd9c18-1f48-4adc-b2a2-a5e768444dfd\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612595} {\"correlation_id\":\"f7dd9c18-1f48-4adc-b2a2-a5e768444dfd\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612595,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"f7dd9c18-1f48-4adc-b2a2-a5e768444dfd\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612595,\"participants\":[{\"id\":999851,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999852,\"user_id\":206,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"f7dd9c18-1f48-4adc-b2a2-a5e768444dfd\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f7dd9c18-1f48-4adc-b2a2-a5e768444dfd\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f7dd9c18-1f48-4adc-b2a2-a5e768444dfd\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"f7dd9c18-1f48-4adc-b2a2-a5e768444dfd\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"f7dd9c18-1f48-4adc-b2a2-a5e768444dfd\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"f7dd9c18-1f48-4adc-b2a2-a5e768444dfd\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612595,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"f7dd9c18-1f48-4adc-b2a2-a5e768444dfd\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612595,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"f7dd9c18-1f48-4adc-b2a2-a5e768444dfd\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612595} {\"correlation_id\":\"f7dd9c18-1f48-4adc-b2a2-a5e768444dfd\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612595,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"f7dd9c18-1f48-4adc-b2a2-a5e768444dfd\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612595,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"f7dd9c18-1f48-4adc-b2a2-a5e768444dfd\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612594,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"4dacaa76-fc8b-462e-95ae-b74602d62a8f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612594} {\"correlation_id\":\"4dacaa76-fc8b-462e-95ae-b74602d62a8f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612594,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4dacaa76-fc8b-462e-95ae-b74602d62a8f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612594,\"participants\":[{\"id\":999849,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999850,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null}]} {\"correlation_id\":\"4dacaa76-fc8b-462e-95ae-b74602d62a8f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4dacaa76-fc8b-462e-95ae-b74602d62a8f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4dacaa76-fc8b-462e-95ae-b74602d62a8f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"4dacaa76-fc8b-462e-95ae-b74602d62a8f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"4dacaa76-fc8b-462e-95ae-b74602d62a8f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612594,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"4dacaa76-fc8b-462e-95ae-b74602d62a8f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"4dacaa76-fc8b-462e-95ae-b74602d62a8f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612594,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"4dacaa76-fc8b-462e-95ae-b74602d62a8f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612594} {\"correlation_id\":\"4dacaa76-fc8b-462e-95ae-b74602d62a8f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612594,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4dacaa76-fc8b-462e-95ae-b74602d62a8f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612594,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"4dacaa76-fc8b-462e-95ae-b74602d62a8f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612593,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"0845a766-3bc8-4303-83dc-9f0e57d46a44\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612593} {\"correlation_id\":\"0845a766-3bc8-4303-83dc-9f0e57d46a44\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612593,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0845a766-3bc8-4303-83dc-9f0e57d46a44\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612593,\"participants\":[{\"id\":999847,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999848,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null}]} {\"correlation_id\":\"0845a766-3bc8-4303-83dc-9f0e57d46a44\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0845a766-3bc8-4303-83dc-9f0e57d46a44\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0845a766-3bc8-4303-83dc-9f0e57d46a44\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0845a766-3bc8-4303-83dc-9f0e57d46a44\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0845a766-3bc8-4303-83dc-9f0e57d46a44\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612593,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"0845a766-3bc8-4303-83dc-9f0e57d46a44\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"0845a766-3bc8-4303-83dc-9f0e57d46a44\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612593,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"0845a766-3bc8-4303-83dc-9f0e57d46a44\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612593} {\"correlation_id\":\"0845a766-3bc8-4303-83dc-9f0e57d46a44\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612593,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0845a766-3bc8-4303-83dc-9f0e57d46a44\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612593,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"0845a766-3bc8-4303-83dc-9f0e57d46a44\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612592,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"315733d6-e316-4fb7-9ab6-c38b0bc2a394\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612592} {\"correlation_id\":\"315733d6-e316-4fb7-9ab6-c38b0bc2a394\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612592,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"315733d6-e316-4fb7-9ab6-c38b0bc2a394\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612592,\"participants\":[{\"id\":999845,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999846,\"user_id\":206,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"315733d6-e316-4fb7-9ab6-c38b0bc2a394\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"315733d6-e316-4fb7-9ab6-c38b0bc2a394\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"315733d6-e316-4fb7-9ab6-c38b0bc2a394\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"315733d6-e316-4fb7-9ab6-c38b0bc2a394\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"315733d6-e316-4fb7-9ab6-c38b0bc2a394\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"315733d6-e316-4fb7-9ab6-c38b0bc2a394\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612592,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"315733d6-e316-4fb7-9ab6-c38b0bc2a394\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612592,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"315733d6-e316-4fb7-9ab6-c38b0bc2a394\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612592} {\"correlation_id\":\"315733d6-e316-4fb7-9ab6-c38b0bc2a394\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612592,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"315733d6-e316-4fb7-9ab6-c38b0bc2a394\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612592,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"315733d6-e316-4fb7-9ab6-c38b0bc2a394\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612591,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"a4f3cee6-628d-4ea1-afef-271709541a6f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612591} {\"correlation_id\":\"a4f3cee6-628d-4ea1-afef-271709541a6f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612591,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a4f3cee6-628d-4ea1-afef-271709541a6f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612591,\"participants\":[{\"id\":999843,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999844,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null}]} {\"correlation_id\":\"a4f3cee6-628d-4ea1-afef-271709541a6f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a4f3cee6-628d-4ea1-afef-271709541a6f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a4f3cee6-628d-4ea1-afef-271709541a6f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"a4f3cee6-628d-4ea1-afef-271709541a6f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"a4f3cee6-628d-4ea1-afef-271709541a6f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612591,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"a4f3cee6-628d-4ea1-afef-271709541a6f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"a4f3cee6-628d-4ea1-afef-271709541a6f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612591,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"a4f3cee6-628d-4ea1-afef-271709541a6f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612591} {\"correlation_id\":\"a4f3cee6-628d-4ea1-afef-271709541a6f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612591,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a4f3cee6-628d-4ea1-afef-271709541a6f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612591,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"a4f3cee6-628d-4ea1-afef-271709541a6f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612590,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"dfa94946-5871-4106-8e8f-5e7a418e64ae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612590} {\"correlation_id\":\"dfa94946-5871-4106-8e8f-5e7a418e64ae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612590,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"dfa94946-5871-4106-8e8f-5e7a418e64ae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612590,\"participants\":[{\"id\":999841,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999842,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null}]} {\"correlation_id\":\"dfa94946-5871-4106-8e8f-5e7a418e64ae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"dfa94946-5871-4106-8e8f-5e7a418e64ae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"dfa94946-5871-4106-8e8f-5e7a418e64ae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"dfa94946-5871-4106-8e8f-5e7a418e64ae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"dfa94946-5871-4106-8e8f-5e7a418e64ae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612590,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"dfa94946-5871-4106-8e8f-5e7a418e64ae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"dfa94946-5871-4106-8e8f-5e7a418e64ae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612590,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"dfa94946-5871-4106-8e8f-5e7a418e64ae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612590} {\"correlation_id\":\"dfa94946-5871-4106-8e8f-5e7a418e64ae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612590,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"dfa94946-5871-4106-8e8f-5e7a418e64ae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612590,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"dfa94946-5871-4106-8e8f-5e7a418e64ae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612589,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"92666ef7-2d6e-4056-9d87-23df1bc694b1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612589} {\"correlation_id\":\"92666ef7-2d6e-4056-9d87-23df1bc694b1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612589,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"92666ef7-2d6e-4056-9d87-23df1bc694b1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612589,\"participants\":[{\"id\":999839,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999840,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null}]} {\"correlation_id\":\"92666ef7-2d6e-4056-9d87-23df1bc694b1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"92666ef7-2d6e-4056-9d87-23df1bc694b1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"92666ef7-2d6e-4056-9d87-23df1bc694b1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"92666ef7-2d6e-4056-9d87-23df1bc694b1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"92666ef7-2d6e-4056-9d87-23df1bc694b1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612589,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"92666ef7-2d6e-4056-9d87-23df1bc694b1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"92666ef7-2d6e-4056-9d87-23df1bc694b1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612589,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"92666ef7-2d6e-4056-9d87-23df1bc694b1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612589} {\"correlation_id\":\"92666ef7-2d6e-4056-9d87-23df1bc694b1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612589,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"92666ef7-2d6e-4056-9d87-23df1bc694b1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612589,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"92666ef7-2d6e-4056-9d87-23df1bc694b1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612588,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"7441c20c-f1d3-4310-a3a7-2c1aad9bbe25\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612588} {\"correlation_id\":\"7441c20c-f1d3-4310-a3a7-2c1aad9bbe25\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612588,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7441c20c-f1d3-4310-a3a7-2c1aad9bbe25\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612588,\"participants\":[{\"id\":999837,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999838,\"user_id\":206,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"7441c20c-f1d3-4310-a3a7-2c1aad9bbe25\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7441c20c-f1d3-4310-a3a7-2c1aad9bbe25\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7441c20c-f1d3-4310-a3a7-2c1aad9bbe25\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7441c20c-f1d3-4310-a3a7-2c1aad9bbe25\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"7441c20c-f1d3-4310-a3a7-2c1aad9bbe25\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"7441c20c-f1d3-4310-a3a7-2c1aad9bbe25\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612588,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"7441c20c-f1d3-4310-a3a7-2c1aad9bbe25\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612588,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"7441c20c-f1d3-4310-a3a7-2c1aad9bbe25\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612588} {\"correlation_id\":\"7441c20c-f1d3-4310-a3a7-2c1aad9bbe25\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612588,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7441c20c-f1d3-4310-a3a7-2c1aad9bbe25\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612588,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"7441c20c-f1d3-4310-a3a7-2c1aad9bbe25\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612587,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"b6283377-e461-4841-90a6-bd9b51c31e78\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612587} {\"correlation_id\":\"b6283377-e461-4841-90a6-bd9b51c31e78\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612587,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b6283377-e461-4841-90a6-bd9b51c31e78\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612587,\"participants\":[{\"id\":999835,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999836,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null}]} {\"correlation_id\":\"b6283377-e461-4841-90a6-bd9b51c31e78\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b6283377-e461-4841-90a6-bd9b51c31e78\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b6283377-e461-4841-90a6-bd9b51c31e78\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b6283377-e461-4841-90a6-bd9b51c31e78\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"b6283377-e461-4841-90a6-bd9b51c31e78\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612587,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"b6283377-e461-4841-90a6-bd9b51c31e78\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"b6283377-e461-4841-90a6-bd9b51c31e78\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612587,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"b6283377-e461-4841-90a6-bd9b51c31e78\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612587} {\"correlation_id\":\"b6283377-e461-4841-90a6-bd9b51c31e78\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612587,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b6283377-e461-4841-90a6-bd9b51c31e78\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612587,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"b6283377-e461-4841-90a6-bd9b51c31e78\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612586,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"d0ddb01c-2b21-4989-998a-fa52e7affced\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612586} {\"correlation_id\":\"d0ddb01c-2b21-4989-998a-fa52e7affced\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612586,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d0ddb01c-2b21-4989-998a-fa52e7affced\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612586,\"participants\":[{\"id\":999833,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999834,\"user_id\":206,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"d0ddb01c-2b21-4989-998a-fa52e7affced\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d0ddb01c-2b21-4989-998a-fa52e7affced\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d0ddb01c-2b21-4989-998a-fa52e7affced\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"d0ddb01c-2b21-4989-998a-fa52e7affced\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"d0ddb01c-2b21-4989-998a-fa52e7affced\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"d0ddb01c-2b21-4989-998a-fa52e7affced\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612586,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"d0ddb01c-2b21-4989-998a-fa52e7affced\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612586,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"d0ddb01c-2b21-4989-998a-fa52e7affced\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612586} {\"correlation_id\":\"d0ddb01c-2b21-4989-998a-fa52e7affced\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612586,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d0ddb01c-2b21-4989-998a-fa52e7affced\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612586,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"d0ddb01c-2b21-4989-998a-fa52e7affced\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.NOTICE: Monitoring start {\"correlation_id\":\"772cf24f-66f8-49c0-8ef5-e6c1d128fccb\",\"trace_id\":\"2d950f5a-3a35-4a8b-b33b-4d129409925b\"}\n[2026-05-11 11:09:31] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612585,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"cef11ffe-61af-425d-b899-399323237a47\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612585} {\"correlation_id\":\"cef11ffe-61af-425d-b899-399323237a47\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612585,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cef11ffe-61af-425d-b899-399323237a47\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.NOTICE: Monitoring end {\"correlation_id\":\"772cf24f-66f8-49c0-8ef5-e6c1d128fccb\",\"trace_id\":\"2d950f5a-3a35-4a8b-b33b-4d129409925b\"}\n[2026-05-11 11:09:31] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612585,\"participants\":[{\"id\":999831,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999832,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null}]} {\"correlation_id\":\"cef11ffe-61af-425d-b899-399323237a47\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cef11ffe-61af-425d-b899-399323237a47\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cef11ffe-61af-425d-b899-399323237a47\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cef11ffe-61af-425d-b899-399323237a47\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"cef11ffe-61af-425d-b899-399323237a47\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612585,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"cef11ffe-61af-425d-b899-399323237a47\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"cef11ffe-61af-425d-b899-399323237a47\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612585,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"cef11ffe-61af-425d-b899-399323237a47\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612585} {\"correlation_id\":\"cef11ffe-61af-425d-b899-399323237a47\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612585,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cef11ffe-61af-425d-b899-399323237a47\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612585,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"cef11ffe-61af-425d-b899-399323237a47\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612584,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"2aa83935-5a46-4a3d-98d7-acfcf3f3f6cb\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612584} {\"correlation_id\":\"2aa83935-5a46-4a3d-98d7-acfcf3f3f6cb\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612584,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2aa83935-5a46-4a3d-98d7-acfcf3f3f6cb\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612584,\"participants\":[{\"id\":999829,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999830,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null}]} {\"correlation_id\":\"2aa83935-5a46-4a3d-98d7-acfcf3f3f6cb\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2aa83935-5a46-4a3d-98d7-acfcf3f3f6cb\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2aa83935-5a46-4a3d-98d7-acfcf3f3f6cb\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"2aa83935-5a46-4a3d-98d7-acfcf3f3f6cb\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"2aa83935-5a46-4a3d-98d7-acfcf3f3f6cb\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612584,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"2aa83935-5a46-4a3d-98d7-acfcf3f3f6cb\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"2aa83935-5a46-4a3d-98d7-acfcf3f3f6cb\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612584,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"2aa83935-5a46-4a3d-98d7-acfcf3f3f6cb\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612584} {\"correlation_id\":\"2aa83935-5a46-4a3d-98d7-acfcf3f3f6cb\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612584,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2aa83935-5a46-4a3d-98d7-acfcf3f3f6cb\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612584,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"2aa83935-5a46-4a3d-98d7-acfcf3f3f6cb\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612583,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"04dd4d55-bdb2-4f42-9fbd-8a132707b475\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612583} {\"correlation_id\":\"04dd4d55-bdb2-4f42-9fbd-8a132707b475\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612583,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"04dd4d55-bdb2-4f42-9fbd-8a132707b475\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612583,\"participants\":[{\"id\":999827,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999828,\"user_id\":206,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"04dd4d55-bdb2-4f42-9fbd-8a132707b475\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"04dd4d55-bdb2-4f42-9fbd-8a132707b475\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"04dd4d55-bdb2-4f42-9fbd-8a132707b475\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"04dd4d55-bdb2-4f42-9fbd-8a132707b475\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"04dd4d55-bdb2-4f42-9fbd-8a132707b475\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"04dd4d55-bdb2-4f42-9fbd-8a132707b475\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612583,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"04dd4d55-bdb2-4f42-9fbd-8a132707b475\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612583,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"04dd4d55-bdb2-4f42-9fbd-8a132707b475\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612583} {\"correlation_id\":\"04dd4d55-bdb2-4f42-9fbd-8a132707b475\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612583,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"04dd4d55-bdb2-4f42-9fbd-8a132707b475\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612583,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"04dd4d55-bdb2-4f42-9fbd-8a132707b475\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612582,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"58e7116b-76f4-4698-a629-ff1eb613d93e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612582} {\"correlation_id\":\"58e7116b-76f4-4698-a629-ff1eb613d93e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612582,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"58e7116b-76f4-4698-a629-ff1eb613d93e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612582,\"participants\":[{\"id\":999825,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999826,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null}]} {\"correlation_id\":\"58e7116b-76f4-4698-a629-ff1eb613d93e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"58e7116b-76f4-4698-a629-ff1eb613d93e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"58e7116b-76f4-4698-a629-ff1eb613d93e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"58e7116b-76f4-4698-a629-ff1eb613d93e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"58e7116b-76f4-4698-a629-ff1eb613d93e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612582,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"58e7116b-76f4-4698-a629-ff1eb613d93e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"58e7116b-76f4-4698-a629-ff1eb613d93e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612582,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"58e7116b-76f4-4698-a629-ff1eb613d93e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612582} {\"correlation_id\":\"58e7116b-76f4-4698-a629-ff1eb613d93e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612582,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"58e7116b-76f4-4698-a629-ff1eb613d93e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612582,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"58e7116b-76f4-4698-a629-ff1eb613d93e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612581,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"b1cdf1eb-a77f-4062-bc7a-52e75ec005f1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612581} {\"correlation_id\":\"b1cdf1eb-a77f-4062-bc7a-52e75ec005f1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612581,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b1cdf1eb-a77f-4062-bc7a-52e75ec005f1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612581,\"participants\":[{\"id\":999823,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999824,\"user_id\":206,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"b1cdf1eb-a77f-4062-bc7a-52e75ec005f1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b1cdf1eb-a77f-4062-bc7a-52e75ec005f1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b1cdf1eb-a77f-4062-bc7a-52e75ec005f1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b1cdf1eb-a77f-4062-bc7a-52e75ec005f1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"b1cdf1eb-a77f-4062-bc7a-52e75ec005f1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"b1cdf1eb-a77f-4062-bc7a-52e75ec005f1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612581,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"b1cdf1eb-a77f-4062-bc7a-52e75ec005f1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612581,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"b1cdf1eb-a77f-4062-bc7a-52e75ec005f1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612581} {\"correlation_id\":\"b1cdf1eb-a77f-4062-bc7a-52e75ec005f1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612581,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b1cdf1eb-a77f-4062-bc7a-52e75ec005f1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612581,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"b1cdf1eb-a77f-4062-bc7a-52e75ec005f1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612565,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"4531fd00-7875-4334-b3c2-407d31ec1255\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612565} {\"correlation_id\":\"4531fd00-7875-4334-b3c2-407d31ec1255\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612565,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4531fd00-7875-4334-b3c2-407d31ec1255\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612565,\"participants\":[{\"id\":999789,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999790,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null}]} {\"correlation_id\":\"4531fd00-7875-4334-b3c2-407d31ec1255\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4531fd00-7875-4334-b3c2-407d31ec1255\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4531fd00-7875-4334-b3c2-407d31ec1255\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"4531fd00-7875-4334-b3c2-407d31ec1255\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"4531fd00-7875-4334-b3c2-407d31ec1255\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612565,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"4531fd00-7875-4334-b3c2-407d31ec1255\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"4531fd00-7875-4334-b3c2-407d31ec1255\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612565,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"4531fd00-7875-4334-b3c2-407d31ec1255\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612565} {\"correlation_id\":\"4531fd00-7875-4334-b3c2-407d31ec1255\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612565,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4531fd00-7875-4334-b3c2-407d31ec1255\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612565,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"4531fd00-7875-4334-b3c2-407d31ec1255\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612563,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34}} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612563} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612563,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612563,\"participants\":[{\"id\":999784,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999785,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null}]} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612563,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":206} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":244,\"contact_id\":4487} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":350} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612563,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612563} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612563,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612563,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612562,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"correlation_id\":\"096bc408-0a3f-43ef-9cf6-f9007ee7315c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612562} {\"correlation_id\":\"096bc408-0a3f-43ef-9cf6-f9007ee7315c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612562,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"096bc408-0a3f-43ef-9cf6-f9007ee7315c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612562,\"participants\":[{\"id\":999782,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":999783,\"user_id\":206,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"096bc408-0a3f-43ef-9cf6-f9007ee7315c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"096bc408-0a3f-43ef-9cf6-f9007ee7315c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"096bc408-0a3f-43ef-9cf6-f9007ee7315c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"096bc408-0a3f-43ef-9cf6-f9007ee7315c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"096bc408-0a3f-43ef-9cf6-f9007ee7315c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"447782589921@txt.staging.jiminny.com\"} {\"correlation_id\":\"096bc408-0a3f-43ef-9cf6-f9007ee7315c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:34] local.INFO: [Hubspot] Failed to fetch contact {\"email\":\"447782589921@txt.staging.jiminny.com\",\"reason\":\"[404] Client error: `GET https://api.hubapi.com/crm/v3/objects/contacts/447782589921%40txt.staging.jiminny.com?properties=email%2Cfirstname%2Clastname%2Ccountry%2Cphone%2Cmobilephone%2Cjobtitle%2Chubspot_owner_id%2Cassociatedcompanyid%2Cphoto&archived=0&idProperty=email` resulted in a `404 Not Found` response\"} {\"correlation_id\":\"096bc408-0a3f-43ef-9cf6-f9007ee7315c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:34] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {\"identifier_type\":\"email\",\"identifier\":\"447782589921@txt.staging.jiminny.com\"} {\"correlation_id\":\"096bc408-0a3f-43ef-9cf6-f9007ee7315c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:34] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":10,\"delay\":14} {\"correlation_id\":\"096bc408-0a3f-43ef-9cf6-f9007ee7315c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:34] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612561,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"correlation_id\":\"cded6bdb-0e7c-4baa-b280-5798e81b236a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:34] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612561} {\"correlation_id\":\"cded6bdb-0e7c-4baa-b280-5798e81b236a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:34] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612561,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cded6bdb-0e7c-4baa-b280-5798e81b236a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:34] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612561,\"participants\":[{\"id\":999780,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999781,\"user_id\":null,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"cded6bdb-0e7c-4baa-b280-5798e81b236a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:34] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cded6bdb-0e7c-4baa-b280-5798e81b236a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:34] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cded6bdb-0e7c-4baa-b280-5798e81b236a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:34] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cded6bdb-0e7c-4baa-b280-5798e81b236a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:34] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"cded6bdb-0e7c-4baa-b280-5798e81b236a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:34] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612561,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"cded6bdb-0e7c-4baa-b280-5798e81b236a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:34] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"447700174614.447782589921.OeREojLVnk@txt.staging.jiminny.com\"} {\"correlation_id\":\"cded6bdb-0e7c-4baa-b280-5798e81b236a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [Hubspot] Failed to fetch contact {\"email\":\"447700174614.447782589921.OeREojLVnk@txt.staging.jiminny.com\",\"reason\":\"[404] Client error: `GET https://api.hubapi.com/crm/v3/objects/contacts/447700174614.447782589921.OeREojLVnk%40txt.staging.jiminny.com?properties=email%2Cfirstname%2Clastname%2Ccountry%2Cphone%2Cmobilephone%2Cjobtitle%2Chubspot_owner_id%2Cassociatedcompanyid%2Cphoto&archived=0&idProperty=email` resulted in a `404 Not Found` response\"} {\"correlation_id\":\"cded6bdb-0e7c-4baa-b280-5798e81b236a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {\"identifier_type\":\"email\",\"identifier\":\"447700174614.447782589921.OeREojLVnk@txt.staging.jiminny.com\"} {\"correlation_id\":\"cded6bdb-0e7c-4baa-b280-5798e81b236a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":10,\"delay\":10} {\"correlation_id\":\"cded6bdb-0e7c-4baa-b280-5798e81b236a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612560,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"correlation_id\":\"53ef5599-df42-4f3d-90a1-8f89c19435e4\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612560} {\"correlation_id\":\"53ef5599-df42-4f3d-90a1-8f89c19435e4\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612560,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"53ef5599-df42-4f3d-90a1-8f89c19435e4\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612560,\"participants\":[{\"id\":999778,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":999779,\"user_id\":206,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"53ef5599-df42-4f3d-90a1-8f89c19435e4\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"53ef5599-df42-4f3d-90a1-8f89c19435e4\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"53ef5599-df42-4f3d-90a1-8f89c19435e4\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"53ef5599-df42-4f3d-90a1-8f89c19435e4\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"53ef5599-df42-4f3d-90a1-8f89c19435e4\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"447782589921@txt.staging.jiminny.com\"} {\"correlation_id\":\"53ef5599-df42-4f3d-90a1-8f89c19435e4\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"447782589921@txt.staging.jiminny.com\"} {\"correlation_id\":\"53ef5599-df42-4f3d-90a1-8f89c19435e4\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":10,\"delay\":12} {\"correlation_id\":\"53ef5599-df42-4f3d-90a1-8f89c19435e4\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612559,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34}} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612559} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612559,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612559,\"participants\":[{\"id\":999776,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999777,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612559,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":69,\"contact_id\":97,\"owner_id\":206} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":69,\"contact_id\":97} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":69,\"contact_id\":97,\"opportunity_id\":5011} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":2.07,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"6d49ffdc-2ed7-4eae-a1ee-e25ca95bbea8\",\"trace_id\":\"906573b5-005c-4820-8a32-3b0703ea86dd\"}\n[2026-05-11 11:09:35] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612559,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612559} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612559,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612559,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612558,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34}} {\"correlation_id\":\"34a7b1c6-be3b-4790-a04c-0311e25dadc8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612558} {\"correlation_id\":\"34a7b1c6-be3b-4790-a04c-0311e25dadc8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612558,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"34a7b1c6-be3b-4790-a04c-0311e25dadc8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612558,\"participants\":[{\"id\":999774,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999775,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"34a7b1c6-be3b-4790-a04c-0311e25dadc8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"34a7b1c6-be3b-4790-a04c-0311e25dadc8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"34a7b1c6-be3b-4790-a04c-0311e25dadc8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"34a7b1c6-be3b-4790-a04c-0311e25dadc8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"34a7b1c6-be3b-4790-a04c-0311e25dadc8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612558,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"34a7b1c6-be3b-4790-a04c-0311e25dadc8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"34a7b1c6-be3b-4790-a04c-0311e25dadc8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612558,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"34a7b1c6-be3b-4790-a04c-0311e25dadc8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612558} {\"correlation_id\":\"34a7b1c6-be3b-4790-a04c-0311e25dadc8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612558,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"34a7b1c6-be3b-4790-a04c-0311e25dadc8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612558,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34} {\"correlation_id\":\"34a7b1c6-be3b-4790-a04c-0311e25dadc8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612557,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34}} {\"correlation_id\":\"26d4d3d0-ebf8-44ad-a48f-24728e5539e0\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612557} {\"correlation_id\":\"26d4d3d0-ebf8-44ad-a48f-24728e5539e0\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612557,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"26d4d3d0-ebf8-44ad-a48f-24728e5539e0\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612557,\"participants\":[{\"id\":999772,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999773,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"26d4d3d0-ebf8-44ad-a48f-24728e5539e0\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"26d4d3d0-ebf8-44ad-a48f-24728e5539e0\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"26d4d3d0-ebf8-44ad-a48f-24728e5539e0\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"26d4d3d0-ebf8-44ad-a48f-24728e5539e0\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"26d4d3d0-ebf8-44ad-a48f-24728e5539e0\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612557,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"26d4d3d0-ebf8-44ad-a48f-24728e5539e0\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"26d4d3d0-ebf8-44ad-a48f-24728e5539e0\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612557,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"26d4d3d0-ebf8-44ad-a48f-24728e5539e0\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612557} {\"correlation_id\":\"26d4d3d0-ebf8-44ad-a48f-24728e5539e0\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612557,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"26d4d3d0-ebf8-44ad-a48f-24728e5539e0\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612557,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34} {\"correlation_id\":\"26d4d3d0-ebf8-44ad-a48f-24728e5539e0\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612556,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34}} {\"correlation_id\":\"406b7ad3-26d6-4b1b-9ad7-fff68622b149\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612556} {\"correlation_id\":\"406b7ad3-26d6-4b1b-9ad7-fff68622b149\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612556,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"406b7ad3-26d6-4b1b-9ad7-fff68622b149\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612556,\"participants\":[{\"id\":999770,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999771,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"406b7ad3-26d6-4b1b-9ad7-fff68622b149\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"406b7ad3-26d6-4b1b-9ad7-fff68622b149\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"406b7ad3-26d6-4b1b-9ad7-fff68622b149\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"406b7ad3-26d6-4b1b-9ad7-fff68622b149\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"406b7ad3-26d6-4b1b-9ad7-fff68622b149\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612556,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"406b7ad3-26d6-4b1b-9ad7-fff68622b149\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"406b7ad3-26d6-4b1b-9ad7-fff68622b149\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612556,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"406b7ad3-26d6-4b1b-9ad7-fff68622b149\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612556} {\"correlation_id\":\"406b7ad3-26d6-4b1b-9ad7-fff68622b149\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612556,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"406b7ad3-26d6-4b1b-9ad7-fff68622b149\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612556,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34} {\"correlation_id\":\"406b7ad3-26d6-4b1b-9ad7-fff68622b149\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612555,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34}} {\"correlation_id\":\"c15b7703-f17b-48e7-bf38-122448d79345\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612555} {\"correlation_id\":\"c15b7703-f17b-48e7-bf38-122448d79345\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612555,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"c15b7703-f17b-48e7-bf38-122448d79345\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612555,\"participants\":[{\"id\":999768,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999769,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"c15b7703-f17b-48e7-bf38-122448d79345\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"c15b7703-f17b-48e7-bf38-122448d79345\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"c15b7703-f17b-48e7-bf38-122448d79345\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"c15b7703-f17b-48e7-bf38-122448d79345\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"c15b7703-f17b-48e7-bf38-122448d79345\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612555,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"c15b7703-f17b-48e7-bf38-122448d79345\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"c15b7703-f17b-48e7-bf38-122448d79345\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612555,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"c15b7703-f17b-48e7-bf38-122448d79345\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612555} {\"correlation_id\":\"c15b7703-f17b-48e7-bf38-122448d79345\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612555,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"c15b7703-f17b-48e7-bf38-122448d79345\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612555,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34} {\"correlation_id\":\"c15b7703-f17b-48e7-bf38-122448d79345\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612554,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34}} {\"correlation_id\":\"c9cce71b-d96d-4117-b9fb-bb9672ae7c2b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612554} {\"correlation_id\":\"c9cce71b-d96d-4117-b9fb-bb9672ae7c2b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612554,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"c9cce71b-d96d-4117-b9fb-bb9672ae7c2b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612554,\"participants\":[{\"id\":999766,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999767,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"c9cce71b-d96d-4117-b9fb-bb9672ae7c2b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"c9cce71b-d96d-4117-b9fb-bb9672ae7c2b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"c9cce71b-d96d-4117-b9fb-bb9672ae7c2b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"c9cce71b-d96d-4117-b9fb-bb9672ae7c2b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"c9cce71b-d96d-4117-b9fb-bb9672ae7c2b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612554,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"c9cce71b-d96d-4117-b9fb-bb9672ae7c2b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"c9cce71b-d96d-4117-b9fb-bb9672ae7c2b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612554,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"c9cce71b-d96d-4117-b9fb-bb9672ae7c2b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612554} {\"correlation_id\":\"c9cce71b-d96d-4117-b9fb-bb9672ae7c2b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612554,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"c9cce71b-d96d-4117-b9fb-bb9672ae7c2b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612554,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34} {\"correlation_id\":\"c9cce71b-d96d-4117-b9fb-bb9672ae7c2b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612553,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34}} {\"correlation_id\":\"ffd2857e-be14-4ab1-8533-93b20116db02\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612553} {\"correlation_id\":\"ffd2857e-be14-4ab1-8533-93b20116db02\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612553,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ffd2857e-be14-4ab1-8533-93b20116db02\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612553,\"participants\":[{\"id\":999764,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999765,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"ffd2857e-be14-4ab1-8533-93b20116db02\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ffd2857e-be14-4ab1-8533-93b20116db02\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ffd2857e-be14-4ab1-8533-93b20116db02\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ffd2857e-be14-4ab1-8533-93b20116db02\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ffd2857e-be14-4ab1-8533-93b20116db02\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612553,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"ffd2857e-be14-4ab1-8533-93b20116db02\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"ffd2857e-be14-4ab1-8533-93b20116db02\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612553,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"ffd2857e-be14-4ab1-8533-93b20116db02\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612553} {\"correlation_id\":\"ffd2857e-be14-4ab1-8533-93b20116db02\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612553,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ffd2857e-be14-4ab1-8533-93b20116db02\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612553,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34} {\"correlation_id\":\"ffd2857e-be14-4ab1-8533-93b20116db02\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612552,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34}} {\"correlation_id\":\"7942c5ee-3b2d-4f76-8728-d5343cd7b02e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612552} {\"correlation_id\":\"7942c5ee-3b2d-4f76-8728-d5343cd7b02e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612552,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7942c5ee-3b2d-4f76-8728-d5343cd7b02e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612552,\"participants\":[{\"id\":999762,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999763,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"7942c5ee-3b2d-4f76-8728-d5343cd7b02e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7942c5ee-3b2d-4f76-8728-d5343cd7b02e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7942c5ee-3b2d-4f76-8728-d5343cd7b02e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7942c5ee-3b2d-4f76-8728-d5343cd7b02e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"7942c5ee-3b2d-4f76-8728-d5343cd7b02e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612552,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"7942c5ee-3b2d-4f76-8728-d5343cd7b02e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"7942c5ee-3b2d-4f76-8728-d5343cd7b02e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612552,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"7942c5ee-3b2d-4f76-8728-d5343cd7b02e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612552} {\"correlation_id\":\"7942c5ee-3b2d-4f76-8728-d5343cd7b02e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612552,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7942c5ee-3b2d-4f76-8728-d5343cd7b02e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612552,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34} {\"correlation_id\":\"7942c5ee-3b2d-4f76-8728-d5343cd7b02e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612551,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34}} {\"correlation_id\":\"8068bb0d-ab6d-48ee-abe2-d6cd116aba26\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612551} {\"correlation_id\":\"8068bb0d-ab6d-48ee-abe2-d6cd116aba26\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612551,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8068bb0d-ab6d-48ee-abe2-d6cd116aba26\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612551,\"participants\":[{\"id\":999760,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999761,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"8068bb0d-ab6d-48ee-abe2-d6cd116aba26\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8068bb0d-ab6d-48ee-abe2-d6cd116aba26\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8068bb0d-ab6d-48ee-abe2-d6cd116aba26\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"8068bb0d-ab6d-48ee-abe2-d6cd116aba26\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"8068bb0d-ab6d-48ee-abe2-d6cd116aba26\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612551,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"8068bb0d-ab6d-48ee-abe2-d6cd116aba26\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"8068bb0d-ab6d-48ee-abe2-d6cd116aba26\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612551,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"8068bb0d-ab6d-48ee-abe2-d6cd116aba26\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612551} {\"correlation_id\":\"8068bb0d-ab6d-48ee-abe2-d6cd116aba26\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612551,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8068bb0d-ab6d-48ee-abe2-d6cd116aba26\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612551,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34} {\"correlation_id\":\"8068bb0d-ab6d-48ee-abe2-d6cd116aba26\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:37] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612550,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34}} {\"correlation_id\":\"36bdbff9-cfb6-43af-b7c4-f2caafa8e794\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:37] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612550} {\"correlation_id\":\"36bdbff9-cfb6-43af-b7c4-f2caafa8e794\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:37] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612550,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"36bdbff9-cfb6-43af-b7c4-f2caafa8e794\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:37] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612550,\"participants\":[{\"id\":999758,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999759,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"36bdbff9-cfb6-43af-b7c4-f2caafa8e794\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:37] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"36bdbff9-cfb6-43af-b7c4-f2caafa8e794\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:37] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"36bdbff9-cfb6-43af-b7c4-f2caafa8e794\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:37] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"36bdbff9-cfb6-43af-b7c4-f2caafa8e794\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:37] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"36bdbff9-cfb6-43af-b7c4-f2caafa8e794\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:37] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612550,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"36bdbff9-cfb6-43af-b7c4-f2caafa8e794\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:37] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"36bdbff9-cfb6-43af-b7c4-f2caafa8e794\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:37] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612550,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"36bdbff9-cfb6-43af-b7c4-f2caafa8e794\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:38] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612550} {\"correlation_id\":\"36bdbff9-cfb6-43af-b7c4-f2caafa8e794\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:38] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612550,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"36bdbff9-cfb6-43af-b7c4-f2caafa8e794\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:38] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612550,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34} {\"correlation_id\":\"36bdbff9-cfb6-43af-b7c4-f2caafa8e794\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:38] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612549,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34}} {\"correlation_id\":\"c2ff3c6c-7380-4c1c-a1f5-50044a473ac8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:38] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612549} {\"correlation_id\":\"c2ff3c6c-7380-4c1c-a1f5-50044a473ac8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:38] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612549,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"c2ff3c6c-7380-4c1c-a1f5-50044a473ac8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:38] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612549,\"participants\":[{\"id\":999756,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999757,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"c2ff3c6c-7380-4c1c-a1f5-50044a473ac8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:39] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"c2ff3c6c-7380-4c1c-a1f5-50044a473ac8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:39] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"c2ff3c6c-7380-4c1c-a1f5-50044a473ac8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:39] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"c2ff3c6c-7380-4c1c-a1f5-50044a473ac8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"c2ff3c6c-7380-4c1c-a1f5-50044a473ac8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:39] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612549,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"c2ff3c6c-7380-4c1c-a1f5-50044a473ac8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:39] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"c2ff3c6c-7380-4c1c-a1f5-50044a473ac8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:39] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612549,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"c2ff3c6c-7380-4c1c-a1f5-50044a473ac8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:39] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612549} {\"correlation_id\":\"c2ff3c6c-7380-4c1c-a1f5-50044a473ac8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612549,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"c2ff3c6c-7380-4c1c-a1f5-50044a473ac8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:39] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612549,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34} {\"correlation_id\":\"c2ff3c6c-7380-4c1c-a1f5-50044a473ac8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:40] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612365,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"a9faea34-163e-4d2a-8007-c903951e3b79\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612365} {\"correlation_id\":\"a9faea34-163e-4d2a-8007-c903951e3b79\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612365,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a9faea34-163e-4d2a-8007-c903951e3b79\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:40] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612365,\"participants\":[{\"id\":999563,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999564,\"user_id\":206,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"a9faea34-163e-4d2a-8007-c903951e3b79\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a9faea34-163e-4d2a-8007-c903951e3b79\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a9faea34-163e-4d2a-8007-c903951e3b79\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"a9faea34-163e-4d2a-8007-c903951e3b79\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"a9faea34-163e-4d2a-8007-c903951e3b79\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"a9faea34-163e-4d2a-8007-c903951e3b79\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:40] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612365,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"a9faea34-163e-4d2a-8007-c903951e3b79\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612365,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"a9faea34-163e-4d2a-8007-c903951e3b79\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612365} {\"correlation_id\":\"a9faea34-163e-4d2a-8007-c903951e3b79\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612365,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a9faea34-163e-4d2a-8007-c903951e3b79\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:41] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612365,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"a9faea34-163e-4d2a-8007-c903951e3b79\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Project","depth":3,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Project","depth":3,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"New File or Directory…","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Expand Selected","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Collapse All","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Options","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
6096521997372283730
|
-2556523036834395804
|
click
|
accessibility
|
NULL
|
Project: faVsco.js, menu
JY-20725-handle-HS-search Project: faVsco.js, menu
JY-20725-handle-HS-search-rate-limit, menu
Start Listening for PHP Debug Connections
HandleHubspotRateLimitTest
Run 'HandleHubspotRateLimitTest'
Debug 'HandleHubspotRateLimitTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
2
67
3
Previous Highlighted Error
Next Highlighted Error
<?php
declare(strict_types=1);
namespace Jiminny\Services\Crm\Hubspot;
use HubSpot\Client\Crm\Deals\ApiException as DealApiException;
use HubSpot\Client\Crm\Contacts\ApiException as ContactApiException;
use HubSpot\Client\Crm\Companies\ApiException as CompanyApiException;
use HubSpot\Client\Crm\Contacts\Model\SimplePublicObjectWithAssociations as ContactsWithAssociations;
use HubSpot\Client\Crm\Companies\Model\SimplePublicObjectWithAssociations as CompaniesWithAssociations;
use HubSpot\Client\Crm\Deals\Model\SimplePublicObjectWithAssociations as DealWithAssociations;
use HubSpot\Client\Crm\Objects\Model\SimplePublicObjectInput;
use HubSpot\Client\Crm\Objects\Model\SimplePublicObjectWithAssociations as ObjectWithAssociations;
use HubSpot\Client\Crm\Pipelines\Model\Error;
use HubSpot\Client\Crm\Pipelines\Model\PipelineStage;
use HubSpot\Client\Crm\Properties\Model\Property;
use HubSpot\Discovery\Discovery;
use Jiminny\Exceptions\CrmException;
use Jiminny\Exceptions\RateLimitException;
use Jiminny\Exceptions\SocialAccountTokenInvalidException;
use Jiminny\Jobs\Crm\NoteObject;
use Jiminny\Models\Crm\Field;
use Jiminny\Services\Crm\BaseClient;
use Jiminny\Services\Crm\Hubspot\DTO\Response\Owner;
use Jiminny\Services\SocialAccountService;
use SevenShores\Hubspot\Exceptions\BadRequest;
use SevenShores\Hubspot\Exceptions\HubspotException;
use SevenShores\Hubspot\Factory;
use SevenShores\Hubspot\Http\Response;
use Jiminny\Services\Crm\Hubspot\Pagination\HubspotPaginationService;
use Illuminate\Support\Facades\Redis;
use Throwable;
/**
* @phpstan-type CrmFieldOption array{id:string, label:string, value?:string}
*/
class Client extends BaseClient implements HubspotClientInterface
{
public const string MIN_API_VERSION = '2';
public const string BASE_URL = '[URL_WITH_CREDENTIALS] T
* @param callable(): T $apiCall
* @return T
*
* @throws RateLimitException
*/
private function executeRequest(callable $apiCall)
{
$cacheKey = $this->getRateLimitCacheKey();
$cachedRetryAfter = Redis::get($cacheKey);
if (is_string($cachedRetryAfter) && is_numeric($cachedRetryAfter)) {
throw new RateLimitException(
'Hubspot rate limit (cached circuit-breaker)',
(int) $cachedRetryAfter,
);
}
try {
return $apiCall();
} catch (Throwable $e) {
if ($this->isHubspotRateLimit($e)) {
$retryAfter = $this->parseRetryAfter($e);
Redis::setex($cacheKey, $retryAfter, (string) $retryAfter);
$this->log->warning('[Hubspot] Received 429 from API', [
'team_id' => $this->config->team_id,
'config_id' => $this->config->getId(),
'retry_after' => $retryAfter,
'reason' => $e->getMessage(),
]);
throw new RateLimitException('Hubspot returned 429', $retryAfter, $e);
}
throw $e;
}
}
private function getRateLimitCacheKey(): string
{
return sprintf('hubspot:ratelimit:portal:%d', $this->config->getId());
}
public function isHubspotRateLimit(Throwable $e): bool
{
if ($e instanceof BadRequest
|| $e instanceof DealApiException
|| $e instanceof ContactApiException
|| $e instanceof CompanyApiException
|| $e instanceof \GuzzleHttp\Exception\RequestException
) {
return (int) $e->getCode() === 429;
}
return false;
}
public function parseRetryAfter(Throwable $e): int
{
if (method_exists($e, 'getResponseHeaders')) {
$headers = $e->getResponseHeaders() ?: [];
$value = $headers['Retry-After'] ?? $headers['retry-after'] ?? null;
if (is_array($value)) {
$value = $value[0] ?? null;
}
if (is_numeric($value)) {
return (int) $value;
}
}
$message = strtolower($e->getMessage()($e));
if (str_contains($message, 'daily')) {
return 600;
}
if (str_contains($message, 'ten secondly')) {
return 10;
}
if (str_contains($message, 'secondly')) {
return 1;
}
$this->log->warning('[Hubspot] No retry-after header or known message, using default', [
'exception_class' => get_class($e),
'message' => $message,
]);
return 10;
}
public function parseMessage(Throwable $e): string
{
if (! method_exists($e, 'getResponseBody')) {
return '';
}
$body = $e->getResponseBody();
if (is_string($body)) {
$body = json_decode($body, true) ?? [];
}
if (! is_array($body)) {
return '';
}
return (string) ($body['message'] ?? '');
}
public function getMinimumApiVersion(): string
{
return self::MIN_API_VERSION;
}
public function getInstance(): Factory
{
return new Factory([
'key' => $this->accessToken,
'oauth2' => true,
'base_url' => $this->baseUrl,
]);
}
public function getNewInstance(): Discovery
{
return \HubSpot\Factory::createWithAccessToken($this->accessToken);
}
/**
* Secondly and daily limits for Hubspot API
*
* Product Tier: Free & Starter | Professional & Enterprise | API add-on (any tier)
* Burst: 100/10 seconds | 150/10 seconds | 200/10 seconds
* Daily: 250,000 | 500,000 | 1,000,000
*
* Official documentation states: The search endpoints are rate limited to five requests per second.
* Since with 5 RPS were still hitting secondly rate limits we lowered it to 4
*/
public function getPaginatedData(array $payload, string $type, int $offset = 0): array
{
$total = 0;
$lastId = null;
$rows = [];
foreach ($this->getPaginatedDataGenerator($payload, $type, $offset, $total, $lastId) as $row) {
$rows[] = $row;
}
return ['results' => $rows, 'total' => $total, 'last_record' => $lastId];
}
/**
* @throws HubspotException
* @throws SocialAccountTokenInvalidException
* @throws BadRequest
*/
public function getPaginatedDataGenerator(
array $payload,
string $type,
int $offset = 0,
int &$total = 0,
?string &$lastRecordId = null
): \Generator {
return $this->paginationService->getPaginatedDataGenerator(
$this,
$payload,
$type,
$offset,
$total,
$lastRecordId
);
}
/**
* Execute a search request against HubSpot CRM objects with rate limiting.
*
* @param string $objectType The object type ('deals', 'companies', 'contacts', 'calls')
* @param array<string, mixed> $payload The search payload with filters, sorts, properties, etc.
* @return array The search response with 'results', 'total', 'paging' keys
* @throws RateLimitException When rate limit is hit
* @throws HubspotException On API errors
*/
public function search(string $objectType, array $payload): array
{
$endpoint = self::BASE_URL . "/crm/v3/objects/{$objectType}/search";
return $this->executeRequest(function () use ($endpoint, $payload) {
$response = $this->getInstance()->getClient()->request('POST', $endpoint, ['json' => $payload]);
return $response->toArray();
});
}
/**
* @throws DealApiException
* @throws CrmException
*/
public function getOpportunityById(string $crmId, array $fields): array
{
try {
$deal = $this->getNewInstance()->crm()->deals()->basicApi()->getById(
$crmId,
implode(',', $fields),
'companies,contacts'
);
} catch (DealApiException $e) {
$this->log->info('[Hubspot] Failed to fetch opportunity', [
'crm_id' => $crmId,
'reason' => $e->getMessage(),
]);
throw $e;
}
if (! $deal instanceof DealWithAssociations) {
throw new CrmException('Deal not found');
}
return [
'id' => $deal->getId(),
'properties' => $deal->getProperties(),
'associations' => $deal->getAssociations(),
];
}
/**
* Generic batch read method for HubSpot objects
*
* @param string $objectType The object type ('deals', 'companies', 'contacts')
* @param array<string> $crmIds Array of HubSpot object IDs (max 100)
* @param array<string> $fields Array of property names to fetch
*
* @return array<string, array> Array keyed by CRM ID with object data
*/
private function batchReadObjects(string $objectType, array $crmIds, array $fields): array
{
if (empty($crmIds)) {
return [];
}
$this->validateBatchSize($objectType, $crmIds);
$this->ensureValidToken();
try {
$batchConfig = $this->createBatchConfiguration($objectType);
$batchReadRequest = $this->prepareBatchRequest($batchConfig, $crmIds, $fields);
$response = $batchConfig['api']->read($batchReadRequest);
$this->validateApiResponse($response, $objectType);
$results = $this->processApiResults($response);
$this->logBatchResults($objectType, $crmIds, $results);
return $results;
} catch (\Throwable $e) {
$this->handleBatchError($e, $objectType, $crmIds);
}
}
private function validateBatchSize(string $objectType, array $crmIds): void
{
if (count($crmIds) > 100) {
throw new \InvalidArgumentException("Batch size cannot exceed 100 {$objectType}");
}
}
private function createBatchConfiguration(string $objectType): array
{
$configurations = [
'deals' => [
'batchReadRequest' => new \HubSpot\Client\Crm\Deals\Model\BatchReadInputSimplePublicObjectId(),
'inputClass' => \HubSpot\Client\Crm\Deals\Model\SimplePublicObjectId::class,
'api' => $this->getNewInstance()->crm()->deals()->batchApi(),
],
'companies' => [
'batchReadRequest' => new \HubSpot\Client\Crm\Companies\Model\BatchReadInputSimplePublicObjectId(),
'inputClass' => \HubSpot\Client\Crm\Companies\Model\SimplePublicObjectId::class,
'api' => $this->getNewInstance()->crm()->companies()->batchApi(),
],
'contacts' => [
'batchReadRequest' => new \HubSpot\Client\Crm\Contacts\Model\BatchReadInputSimplePublicObjectId(),
'inputClass' => \HubSpot\Client\Crm\Contacts\Model\SimplePublicObjectId::class,
'api' => $this->getNewInstance()->crm()->contacts()->batchApi(),
],
];
if (! isset($configurations[$objectType])) {
throw new \InvalidArgumentException("Unsupported object type: {$objectType}");
}
return $configurations[$objectType];
}
private function prepareBatchRequest(array $batchConfig, array $crmIds, array $fields): object
{
$batchReadRequest = $batchConfig['batchReadRequest'];
$inputClass = $batchConfig['inputClass'];
$inputs = array_map(function ($crmId) use ($inputClass) {
$input = new $inputClass();
$input->setId($crmId);
return $input;
}, $crmIds);
$batchReadRequest->setInputs($inputs);
$batchReadRequest->setProperties($fields);
return $batchReadRequest;
}
private function validateApiResponse($response, string $objectType): void
{
if (! $response) {
throw new CrmException("HubSpot API returned null response for {$objectType} batch read");
}
}
private function processApiResults($response): array
{
$results = [];
$responseResults = $response->getResults();
if ($responseResults) {
foreach ($responseResults as $object) {
if ($object && $object->getId()) {
$results[$object->getId()] = [
'id' => $object->getId(),
'properties' => $object->getProperties() ?: [],
];
}
}
}
return $results;
}
private function logBatchResults(string $objectType, array $crmIds, array $results): void
{
$this->log->info("[HubSpot] Batch fetched {$objectType}", [
'requested_count' => count($crmIds),
'returned_count' => count($results),
'crm_ids' => $crmIds,
]);
}
private function handleBatchError(\Throwable $e, string $objectType, array $crmIds): void
{
$errorMessage = $e->getMessage() ?: 'Unknown error';
$errorTrace = $e->getTraceAsString() ?: 'No trace available';
$this->log->error("[HubSpot] Failed to batch fetch {$objectType}", [
'crm_ids' => $crmIds,
'error' => $errorMessage,
'trace' => $errorTrace,
]);
throw new CrmException("Failed to batch fetch {$objectType}: " . $errorMessage);
}
/**
* Batch read multiple opportunities by their CRM IDs
*
* @param array<string> $crmIds Array of HubSpot deal IDs (max 100)
* @param array<string> $fields Array of property names to fetch
*
* @return array<string, array> Array keyed by CRM ID with opportunity data
*/
public function getOpportunitiesByIds(array $crmIds, array $fields): array
{
return $this->batchReadObjects('deals', $crmIds, $fields);
}
/**
* Batch read multiple companies by their CRM IDs
*
* @param array<string> $crmIds Array of HubSpot company IDs (max 100)
* @param array<string> $fields Array of property names to fetch
*
* @return array<string, array> Array keyed by CRM ID with company data
*/
public function getCompaniesByIds(array $crmIds, array $fields): array
{
return $this->batchReadObjects('companies', $crmIds, $fields);
}
/**
* Batch read multiple contacts by their CRM IDs
*
* @param array<string> $crmIds Array of HubSpot contact IDs (max 100)
* @param array<string> $fields Array of property names to fetch
*
* @return array<string, array> Array keyed by CRM ID with contact data
*/
public function getContactsByIds(array $crmIds, array $fields): array
{
return $this->batchReadObjects('contacts', $crmIds, $fields);
}
/**
* @throws CompanyApiException
* @throws CrmException
*/
public function getAccountById(string $crmId, array $fields): array
{
try {
$company = $this->getNewInstance()->crm()->companies()->basicApi()->getById(
$crmId,
implode(',', $fields),
);
} catch (CompanyApiException $e) {
$this->log->info('[Hubspot] Failed to fetch account', [
'crm_id' => $crmId,
'reason' => $e->getMessage(),
]);
throw $e;
}
if (! $company instanceof CompaniesWithAssociations) {
throw new CrmException('Account not found');
}
return [
'id' => $company->getId(),
'properties' => $company->getProperties(),
];
}
/**
* @throws ContactApiException
* @throws CrmException
*/
public function getContactById(string $crmId, array $fields): array
{
try {
$contact = $this->getNewInstance()->crm()->contacts()->basicApi()->getById(
$crmId,
implode(',', $fields)
);
} catch (ContactApiException $e) {
$this->log->info('[Hubspot] Failed to fetch contact', [
'crm_id' => $crmId,
'reason' => $e->getMessage(),
]);
throw $e;
}
if (! $contact instanceof ContactsWithAssociations) {
throw new CrmException('Contact not found');
}
return [
'id' => $contact->getId(),
'properties' => $contact->getProperties(),
];
}
/**
* This is email search request that Hubspot offers as GET (more generous quota)
*/
public function getContactByEmail(string $email, array $fields = []): array
{
try {
$contact = $this->getNewInstance()->crm()->contacts()->basicApi()->getById(
$email,
implode(',', $fields),
null,
false,
'email'
);
return [
'id' => $contact->getId(),
'properties' => $contact->getProperties(),
];
} catch (ContactApiException $e) {
$this->log->info('[Hubspot] Failed to fetch contact', [
'email' => $email,
'reason' => $e->getMessage(),
]);
return [];
}
}
/**
* @throws CrmException
*/
public function fetchProperty(string $objectType, string $propertyId): Property
{
$result = $this->getNewInstance()->crm()->properties()->coreApi()->getByName($objectType, $propertyId);
if (! $result instanceof Property) {
$this->log->error('[Hubspot] Failed to fetch property', [
'object_type' => $objectType,
'property_id' => $propertyId,
'reason' => $result->getMessage(),
]);
throw new CrmException('Failed to fetch property');
}
return $result;
}
/**
* @return array<CrmFieldOption>
*/
public function fetchPropertyOptions(string $objectType, string $propertyId): array
{
/** @var array<CrmFieldOption> */
return $this->fetchProperty($objectType, $propertyId)->getOptions();
}
/**
* @return array<array{id:string, label:string, deleted:bool}>
*/
public function fetchCallDispositions(): array
{
/** @var Response $response */
$response = $this->getInstance()->engagements()->getCallDispositions();
/**
* @var array<array{
* id:string,
* label:string,
* deleted: bool
* }>
*/
return $response->toArray();
}
/**
* @return array<CrmFieldOption>
*/
public function fetchOpportunityPipelineStages(): array
{
$stages = [];
$apiResponse = $this->getNewInstance()->crm()->pipelines()->pipelinesApi()->getAll('deals');
if ($apiResponse instanceof Error) {
$this->log->error('[Hubspot] Failed to fetch opportunity pipelines', [
'reason' => $apiResponse->getMessage(),
]);
return [];
}
foreach ($apiResponse->getResults() as $pipeline) {
$pipelineStages = array_map(
static function (PipelineStage $stage) {
return [
'id' => $stage->getId(),
'label' => $stage->getLabel(),
];
},
$pipeline->getStages()
);
$stages = array_merge($stages, $pipelineStages);
}
return $stages;
}
public function fetchOpportunityPipelines(): array
{
$pipelines = [];
try {
$apiResponse = $this->makeRequest('/crm/v3/pipelines/deals');
} catch (\Exception $e) {
$this->log->info('[Hubspot] Failed to fetch opportunity pipelines', [
'reason' => $e->getMessage(),
]);
return [];
}
$response = $apiResponse->toArray();
foreach ($response['results'] as $pipeline) {
$pipelines[] = [
'id' => $pipeline['id'],
'label' => $pipeline['label'],
];
}
return $pipelines;
}
/**
* @return array<CrmFieldOption>
*/
public function fetchMeetingOutcomeFieldOptions(Field $field): array
{
return $field->getCrmProviderId() === 'meetingOutcome'
? $this->fetchMeetingOutcomeTypes()
: $this->fetchCallActivityTypes();
}
public function fetchMeetingOutcomeTypes(): array
{
return $this->extractMeetingTypeOptions(
'[URL_WITH_CREDENTIALS] Response $response */
$response = $this->getInstance()
->getClient()
->request('GET', $endpoint);
/**
* @var array<array{
* value: string,
* label: string,
* displayOrder: int
* }> $optionData
*/
$optionData = $response->toArray()['options'] ?? [];
$options = [];
foreach ($optionData as $item) {
$options[] = [
'id' => $item['value'],
'value' => $item['value'],
'label' => $item['label'],
'display_order' => $item['displayOrder'],
];
}
return $options;
}
/**
* @return array<CrmFieldOption>
*/
public function fetchDispositionFieldOptions(): array
{
$options = [];
$dispositions = $this->fetchCallDispositions();
foreach ($dispositions as $disposition) {
if ($disposition['deleted'] !== false) {
continue;
}
$option['value'] = $disposition['id'];
$option['id'] = $disposition['id'];
$option['label'] = $disposition['label'];
$options[] = $option;
}
return $options;
}
/**
* @return array<CrmFieldOption>
*/
public function fetchOpportunityFieldOptions(Field $field): array
{
if ($field->isStageField()) {
return $this->fetchOpportunityPipelineStages();
}
if ($field->isPipelineField()) {
return $this->fetchOpportunityPipelines();
}
return $this->fetchPropertyOptions('deals', $field->getCrmProviderId());
}
/**
* @throws BadRequest
* @throws HubspotException
*/
public function makeRequest(string $endpoint, $method = 'GET', $payload = [], ?string $queryString = null)
{
$endpoint = self::BASE_URL . $endpoint;
if ($method === 'GET') {
return $this->getInstance()->getClient()?->request(
method: $method,
endpoint: $endpoint,
query_string: $queryString
);
} else {
return $this->getInstance()->getClient()->request($method, $endpoint, [
'json' => ($payload),
]);
}
}
/**
* @throws BadRequest
* @throws HubspotException
*/
public function createMeeting(array $payload): Response
{
$endpoint = '/crm/v3/objects/meetings';
return $this->makeRequest($endpoint, 'POST', $payload);
}
/**
* @throws BadRequest
* @throws HubspotException
*/
public function updateMeeting(string $meetingId, array $payload): Response
{
$endpoint = '/crm/v3/objects/meetings/' . $meetingId;
return $this->makeRequest($endpoint, 'PATCH', $payload);
}
/**
* @throws \Exception
*/
public function createNote(
string $body,
string $ownerId,
int $timestamp,
string $objectId,
NoteObject $noteObject
): ?string {
try {
$noteInput = new SimplePublicObjectInput([
'properties' => [
'hs_note_body' => $body,
'hubspot_owner_id' => $ownerId,
'hs_timestamp' => $timestamp,
],
]);
// Create note
$note = $this->getNewInstance()->crm()->objects()->basicApi()->create('note', $noteInput);
$this->getNewInstance()->crm()->objects()->associationsApi()->create(
'note',
$note->getId(),
$this->getNoteObject($noteObject),
$objectId,
$this->getNoteAssociationType($noteObject),
);
return $note->getId();
} catch (\Exception $e) {
$this->log->error('[Hubspot] Failed to create note', [
'objectId' => $objectId,
'noteObject' => $noteObject->getObjectType(),
'reason' => $e->getMessage(),
]);
\Sentry::captureException($e);
}
return null;
}
public function updateEngagement(string $objectId, array $engagement, array $metadata): void
{
$this->getInstance()->engagements()->update($objectId, $engagement, $metadata);
}
public function getEngagementData(string $engagementId): array
{
$engagement = $this->getInstance()->engagements()->get($engagementId);
return $engagement->toArray();
}
public function createEngagement(array $engagement, array $associations, array $metadata): Response
{
return $this->getInstance()
->engagements()
->create($engagement, $associations, $metadata);
}
public function isUnauthorizedException(\Exception $e): bool
{
// Check for specific HubSpot API exception types first
if ($e instanceof BadRequest) {
// BadRequest can contain 401 status codes
return $e->getCode() === 401;
}
// Check for HTTP client exceptions with status codes
if ($e instanceof \GuzzleHttp\Exception\RequestException && $e->hasResponse()) {
$response = $e->getResponse();
if ($response !== null) {
return $response->getStatusCode() === 401;
}
}
// Check for Guzzle HTTP exceptions
if ($e instanceof \GuzzleHttp\Exception\ClientException) {
return $e->getCode() === 401;
}
// Fallback to string matching as last resort, but be more specific
$message = strtolower($e->getMessage());
return str_contains($message, '401 unauthorized') ||
str_contains($message, 'http 401') ||
str_contains($message, 'status code 401') ||
(preg_match('/\b401\b/', $message) && str_contains($message, 'unauthorized'));
}
/**
* Validates and refreshes the access token if needed before API requests.
* This ensures long-running processes don't fail due to token expiration.
*
* @throws SocialAccountTokenInvalidException
*/
public function ensureValidToken(): void
{
if ($this->oauthAccount === null) {
return;
}
$newToken = $this->tokenManager->ensureValidToken($this->oauthAccount);
if ($newToken !== null) {
$this->accessToken = $newToken;
}
}
public function getConfig()
{
return $this->config;
}
// returns only active (archived=false)
public function getOwners(): array
{
return $this->getNewInstance()->crm()->owners()->getAll();
}
/**
* @param bool $archived
*
* @return array<Owner>|[]
*/
public function getOwnersArchived(bool $archived = true): array
{
$endpoint = '/crm/v3/owners';
$queryParams = [
'archived' => $archived ? 'true' : 'false',
];
$queryString = http_build_query($queryParams);
$owners = [];
try {
$response = $this->makeRequest(endpoint: $endpoint, queryString: $queryString);
$responseData = $response?->toArray();
foreach ($responseData['results'] as $result) {
try {
$owners[] = Owner::create($result);
} catch (Throwable $e) {
$this->log->error('[HubSpot] Failed to process owner data', [
'result' => $result,
'error' => $e->getMessage(),
]);
continue;
}
}
} catch (Throwable $e) {
$this->log->error('HubSpot] Failed to fetch owners', [
'archived' => $archived,
'error' => $e->getMessage(),
]);
return [];
}
return $owners;
}
public function getMeeting(string $engagementId): ObjectWithAssociations
{
return $this->getNewInstance()->crm()->objects()->basicApi()
->getById('meeting', $engagementId, null, 'contact,company,deal');
}
public function deleteEngagement(string $engagementId): void
{
$this->getInstance()->engagements()->delete((int) $engagementId);
}
public function getAssociationsData(array $ids, string $fromObject, string $toObject): array
{
$associationData = [];
$idChunks = array_chunk($ids, self::ASSOCIATIONS_BATCH_SIZE_LIMIT);
foreach ($idChunks as $idChunk) {
try {
$batchInput = new \HubSpot\Client\Crm\Associations\Model\BatchInputPublicObjectId();
$batchInput->setInputs(array_map(function ($id) {
$publicObjectId = new \HubSpot\Client\Crm\Associations\Model\PublicObjectId();
$publicObjectId->setId($id);
return $publicObjectId;
}, $idChunk));
$associatedObjectsData = $this
->getNewInstance()
->crm()
->associations()
->batchApi()
->read($fromObject, $toObject, $batchInput);
if ($associatedObjectsData instanceof \HubSpot\Client\Crm\Associations\Model\BatchResponsePublicAssociationMulti) {
foreach ($associatedObjectsData->getResults() as $association) {
$from = $association->getFrom()->getId();
$toAssociations = $association->getTo();
if (! empty($toAssociations)) {
$associationData[$from] = array_map(function ($item) {
return $item->getId();
}, $toAssociations);
}
}
}
// } catch (RateLimitException $e) {
// throw $e;
} catch (\Exception $e) {
$this->log->error('[Hubspot] Failed to fetch associations', [
'from_object' => $fromObject,
'to_object' => $toObject,
'reason' => $e->getMessage(),
]);
}
}
return $associationData;
}
/**
* @throws \Exception
*/
private function getNoteAssociationType(NoteObject $noteObject): string
{
return match($noteObject) {
NoteObject::Opportunity => 'note_to_deal',
NoteObject::Lead, NoteObject::Contact => 'note_to_contact', // or 'note_to_lead' if your portal supports it
NoteObject::Account => 'note_to_company',
NoteObject::Call, NoteObject::Event => throw new \Exception('Not supported'),
};
}
/**
* @throws \Exception
*/
private function getNoteObject(NoteObject $noteObject): string
{
return match($noteObject) {
NoteObject::Opportunity => 'deal',
NoteObject::Lead, NoteObject::Contact => 'contact',
NoteObject::Account => 'company',
NoteObject::Call, NoteObject::Event => throw new \Exception('Not supported'),
};
}
public function addAssociations(string $objectType, string $associationType, array $payload): Response
{
$endpoint = "/crm/v4/associations/$objectType/$associationType/batch/create";
return $this->makeRequest($endpoint, 'POST', $payload);
}
public function removeAssociations(string $objectType, string $associationType, array $payload): Response
{
$endpoint = "/crm/v4/associations/$objectType/$associationType/batch/archive";
return $this->makeRequest($endpoint, 'POST', $payload);
}
}
Show Replace Field
Search History
429
New Line
Match Case
Words
Regex
Replace History
Replace
New Line
Preserve case
1/4
Previous Occurrence
Next Occurrence
Filter Search Results
Open in Window, Multiple Cursors
Click to highlight
Close
Sync Changes
Hide This Notification
Code changed:
Hide
54
Previous Highlighted Error
Next Highlighted Error
[2026-05-11 11:08:45] local.INFO: Jiminny\Console\Commands\Command::run Memory usage before starting command {"command":"mailbox:batch:retry-failed","memoryBeforeCommandInMb":60.0,"memoryPeakBeforeCommandInMb":99.727} {"correlation_id":"43b1fb67-9aac-4fc6-9ced-689ecda5c548","trace_id":"60028d0e-dcd8-496a-a7ba-3a04b8d646e2"}
[2026-05-11 11:08:45] local.INFO: [Commands/AsyncUpdateEsEntities] Starting ES update worker {"pid":72650,"workerId":"","target":"activities"} {"correlation_id":"6d49ffdc-2ed7-4eae-a1ee-e25ca95bbea8","trace_id":"906573b5-005c-4820-8a32-3b0703ea86dd"}
[2026-05-11 11:08:46] local.INFO: Jiminny\Console\Commands\Command::run Memory usage for command {"command":"mailbox:batch:retry-failed","memoryBeforeCommandInMb":60.0,"memoryAfterCommandInMB":60.0,"memoryPeakBeforeCommandInMb":99.727,"memoryPeakAfterCommandInMB":99.727} {"correlation_id":"43b1fb67-9aac-4fc6-9ced-689ecda5c548","trace_id":"60028d0e-dcd8-496a-a7ba-3a04b8d646e2"}
[2026-05-11 11:09:12] local.INFO: [MatchActivityCrmData] Starting CRM data matching {"activity":615092,"remote_search":true,"set_configuration":2,"old_state":{"lead_id":null,"contact_id":null,"account_id":26,"opportunity_id":22,"stage_id":89}} {"correlation_id":"f33d47cb-76c6-4c27-a641-48cbf69e623d","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:12] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":615092} {"correlation_id":"f33d47cb-76c6-4c27-a641-48cbf69e623d","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:12] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":615092,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"f33d47cb-76c6-4c27-a641-48cbf69e623d","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:12] local.INFO: [MatchActivityCrmData] Participants old state {"activity":615092,"participants":[{"id":1004102,"user_id":null,"contact_id":null,"lead_id":null},{"id":1004103,"user_id":89,"contact_id":null,"lead_id":null}]} {"correlation_id":"f33d47cb-76c6-4c27-a641-48cbf69e623d","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:12] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"f33d47cb-76c6-4c27-a641-48cbf69e623d","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:12] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"f33d47cb-76c6-4c27-a641-48cbf69e623d","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:12] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"f33d47cb-76c6-4c27-a641-48cbf69e623d","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:12] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"f33d47cb-76c6-4c27-a641-48cbf69e623d","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:12] local.INFO: [Prospect match] Cache miss, calling the API {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"f33d47cb-76c6-4c27-a641-48cbf69e623d","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:13] local.INFO: [Hubspot] Failed to fetch contact {"email":"[EMAIL]","reason":"[404] Client error: `GET https://api.hubapi.com/crm/v3/objects/contacts/nikolay.nikolov%40jiminny.com?properties=email%2Cfirstname%2Clastname%2Ccountry%2Cphone%2Cmobilephone%2Cjobtitle%2Chubspot_owner_id%2Cassociatedcompanyid%2Cphoto&archived=0&idProperty=email` resulted in a `404 Not Found` response"} {"correlation_id":"f33d47cb-76c6-4c27-a641-48cbf69e623d","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:13] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"f33d47cb-76c6-4c27-a641-48cbf69e623d","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:13] local.WARNING: [Hubspot] No retry-after header or known message, using default {"exception_class":"SevenShores\\Hubspot\\Exceptions\\BadRequest","message":""} {"correlation_id":"f33d47cb-76c6-4c27-a641-48cbf69e623d","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:13] local.WARNING: [Hubspot] Received 429 from API {"team_id":2,"config_id":2,"retry_after":10,"message":"","reason":"Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response:
{\"status\":\"error\",\"message\":\"You have reached your secondly limit.\",\"errorType\":\"RATE_LIMIT\",\"correlationId\":\"019e16ba-1 (truncated...)
"} {"correlation_id":"f33d47cb-76c6-4c27-a641-48cbf69e623d","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:13] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":10,"delay":12} {"correlation_id":"f33d47cb-76c6-4c27-a641-48cbf69e623d","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [MatchActivityCrmData] Starting CRM data matching {"activity":614436,"remote_search":true,"set_configuration":2,"old_state":{"lead_id":null,"contact_id":null,"account_id":26,"opportunity_id":22,"stage_id":89}} {"correlation_id":"ccafe863-7885-4971-96fb-87ef6dd4adf3","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":614436} {"correlation_id":"ccafe863-7885-4971-96fb-87ef6dd4adf3","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":614436,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"ccafe863-7885-4971-96fb-87ef6dd4adf3","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [MatchActivityCrmData] Participants old state {"activity":614436,"participants":[{"id":1002751,"user_id":null,"contact_id":null,"lead_id":null},{"id":1002752,"user_id":89,"contact_id":null,"lead_id":null}]} {"correlation_id":"ccafe863-7885-4971-96fb-87ef6dd4adf3","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"ccafe863-7885-4971-96fb-87ef6dd4adf3","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"ccafe863-7885-4971-96fb-87ef6dd4adf3","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"ccafe863-7885-4971-96fb-87ef6dd4adf3","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"ccafe863-7885-4971-96fb-87ef6dd4adf3","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [Prospect match] Cache / local search hit {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"ccafe863-7885-4971-96fb-87ef6dd4adf3","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"ccafe863-7885-4971-96fb-87ef6dd4adf3","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":10,"delay":10} {"correlation_id":"ccafe863-7885-4971-96fb-87ef6dd4adf3","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [MatchActivityCrmData] Starting CRM data matching {"activity":614382,"remote_search":true,"set_configuration":2,"old_state":{"lead_id":null,"contact_id":null,"account_id":26,"opportunity_id":22,"stage_id":89}} {"correlation_id":"f00a4506-adfe-4fdc-b932-e6d2bc751fde","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":614382} {"correlation_id":"f00a4506-adfe-4fdc-b932-e6d2bc751fde","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":614382,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"f00a4506-adfe-4fdc-b932-e6d2bc751fde","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [MatchActivityCrmData] Participants old state {"activity":614382,"participants":[{"id":1002632,"user_id":null,"contact_id":null,"lead_id":null},{"id":1002633,"user_id":89,"contact_id":null,"lead_id":null}]} {"correlation_id":"f00a4506-adfe-4fdc-b932-e6d2bc751fde","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"f00a4506-adfe-4fdc-b932-e6d2bc751fde","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"f00a4506-adfe-4fdc-b932-e6d2bc751fde","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"f00a4506-adfe-4fdc-b932-e6d2bc751fde","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"f00a4506-adfe-4fdc-b932-e6d2bc751fde","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [Prospect match] Cache / local search hit {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"f00a4506-adfe-4fdc-b932-e6d2bc751fde","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"f00a4506-adfe-4fdc-b932-e6d2bc751fde","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":10,"delay":12} {"correlation_id":"f00a4506-adfe-4fdc-b932-e6d2bc751fde","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [MatchActivityCrmData] Starting CRM data matching {"activity":614381,"remote_search":true,"set_configuration":2,"old_state":{"lead_id":null,"contact_id":null,"account_id":26,"opportunity_id":22,"stage_id":89}} {"correlation_id":"36bd73f5-17f9-4f70-8254-2214543c7f8e","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":614381} {"correlation_id":"36bd73f5-17f9-4f70-8254-2214543c7f8e","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":614381,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"36bd73f5-17f9-4f70-8254-2214543c7f8e","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [MatchActivityCrmData] Participants old state {"activity":614381,"participants":[{"id":1002630,"user_id":null,"contact_id":null,"lead_id":null},{"id":1002631,"user_id":89,"contact_id":null,"lead_id":null}]} {"correlation_id":"36bd73f5-17f9-4f70-8254-2214543c7f8e","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"36bd73f5-17f9-4f70-8254-2214543c7f8e","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"36bd73f5-17f9-4f70-8254-2214543c7f8e","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"36bd73f5-17f9-4f70-8254-2214543c7f8e","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"36bd73f5-17f9-4f70-8254-2214543c7f8e","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [Prospect match] Cache / local search hit {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"36bd73f5-17f9-4f70-8254-2214543c7f8e","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"36bd73f5-17f9-4f70-8254-2214543c7f8e","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":10,"delay":10} {"correlation_id":"36bd73f5-17f9-4f70-8254-2214543c7f8e","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:15] local.INFO: [MatchActivityCrmData] Starting CRM data matching {"activity":614378,"remote_search":true,"set_configuration":2,"old_state":{"lead_id":null,"contact_id":6167,"account_id":null,"opportunity_id":null,"stage_id":null}} {"correlation_id":"a4a3a058-ec22-4f04-bb14-a9bff18ce214","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:15] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":614378} {"correlation_id":"a4a3a058-ec22-4f04-bb14-a9bff18ce214","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:15] local.INFO: [ Asyn...
|
18349
|
NULL
|
NULL
|
NULL
|
|
18352
|
793
|
30
|
2026-05-11T11:12:46.528734+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778497966528_m2.jpg...
|
PhpStorm
|
faVsco.js – Client.php
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
JY-20725-handle-HS-search Project: faVsco.js, menu
JY-20725-handle-HS-search-rate-limit, menu
Start Listening for PHP Debug Connections
HandleHubspotRateLimitTest
Run 'HandleHubspotRateLimitTest'
Debug 'HandleHubspotRateLimitTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
2
67
3
Previous Highlighted Error
Next Highlighted Error
<?php
declare(strict_types=1);
namespace Jiminny\Services\Crm\Hubspot;
use HubSpot\Client\Crm\Deals\ApiException as DealApiException;
use HubSpot\Client\Crm\Contacts\ApiException as ContactApiException;
use HubSpot\Client\Crm\Companies\ApiException as CompanyApiException;
use HubSpot\Client\Crm\Contacts\Model\SimplePublicObjectWithAssociations as ContactsWithAssociations;
use HubSpot\Client\Crm\Companies\Model\SimplePublicObjectWithAssociations as CompaniesWithAssociations;
use HubSpot\Client\Crm\Deals\Model\SimplePublicObjectWithAssociations as DealWithAssociations;
use HubSpot\Client\Crm\Objects\Model\SimplePublicObjectInput;
use HubSpot\Client\Crm\Objects\Model\SimplePublicObjectWithAssociations as ObjectWithAssociations;
use HubSpot\Client\Crm\Pipelines\Model\Error;
use HubSpot\Client\Crm\Pipelines\Model\PipelineStage;
use HubSpot\Client\Crm\Properties\Model\Property;
use HubSpot\Discovery\Discovery;
use Jiminny\Exceptions\CrmException;
use Jiminny\Exceptions\RateLimitException;
use Jiminny\Exceptions\SocialAccountTokenInvalidException;
use Jiminny\Jobs\Crm\NoteObject;
use Jiminny\Models\Crm\Field;
use Jiminny\Services\Crm\BaseClient;
use Jiminny\Services\Crm\Hubspot\DTO\Response\Owner;
use Jiminny\Services\SocialAccountService;
use SevenShores\Hubspot\Exceptions\BadRequest;
use SevenShores\Hubspot\Exceptions\HubspotException;
use SevenShores\Hubspot\Factory;
use SevenShores\Hubspot\Http\Response;
use Jiminny\Services\Crm\Hubspot\Pagination\HubspotPaginationService;
use Illuminate\Support\Facades\Redis;
use Throwable;
/**
* @phpstan-type CrmFieldOption array{id:string, label:string, value?:string}
*/
class Client extends BaseClient implements HubspotClientInterface
{
public const string MIN_API_VERSION = '2';
public const string BASE_URL = '[URL_WITH_CREDENTIALS] T
* @param callable(): T $apiCall
* @return T
*
* @throws RateLimitException
*/
private function executeRequest(callable $apiCall)
{
$cacheKey = $this->getRateLimitCacheKey();
$cachedRetryAfter = Redis::get($cacheKey);
if (is_string($cachedRetryAfter) && is_numeric($cachedRetryAfter)) {
throw new RateLimitException(
'Hubspot rate limit (cached circuit-breaker)',
(int) $cachedRetryAfter,
);
}
try {
return $apiCall();
} catch (Throwable $e) {
if ($this->isHubspotRateLimit($e)) {
$retryAfter = $this->parseRetryAfter($e);
Redis::setex($cacheKey, $retryAfter, (string) $retryAfter);
$this->log->warning('[Hubspot] Received 429 from API', [
'team_id' => $this->config->team_id,
'config_id' => $this->config->getId(),
'retry_after' => $retryAfter,
'reason' => $e->getMessage(),
]);
throw new RateLimitException('Hubspot returned 429', $retryAfter, $e);
}
throw $e;
}
}
private function getRateLimitCacheKey(): string
{
return sprintf('hubspot:ratelimit:portal:%d', $this->config->getId());
}
public function isHubspotRateLimit(Throwable $e): bool
{
if ($e instanceof BadRequest
|| $e instanceof DealApiException
|| $e instanceof ContactApiException
|| $e instanceof CompanyApiException
|| $e instanceof \GuzzleHttp\Exception\RequestException
) {
return (int) $e->getCode() === 429;
}
return false;
}
public function parseRetryAfter(Throwable $e): int
{
if (method_exists($e, 'getResponseHeaders')) {
$headers = $e->getResponseHeaders() ?: [];
$value = $headers['Retry-After'] ?? $headers['retry-after'] ?? null;
if (is_array($value)) {
$value = $value[0] ?? null;
}
if (is_numeric($value)) {
return (int) $value;
}
}
$message = strtolower($e->getMessage()($e));
if (str_contains($message, 'daily')) {
return 600;
}
if (str_contains($message, 'ten secondly')) {
return 10;
}
if (str_contains($message, 'secondly')) {
return 1;
}
$this->log->warning('[Hubspot] No retry-after header or known message, using default', [
'exception_class' => get_class($e),
'message' => $message,
]);
return 10;
}
public function parseMessage(Throwable $e): string
{
if (! method_exists($e, 'getResponseBody')) {
return '';
}
$body = $e->getResponseBody();
if (is_string($body)) {
$body = json_decode($body, true) ?? [];
}
if (! is_array($body)) {
return '';
}
return (string) ($body['message'] ?? '');
}
public function getMinimumApiVersion(): string
{
return self::MIN_API_VERSION;
}
public function getInstance(): Factory
{
return new Factory([
'key' => $this->accessToken,
'oauth2' => true,
'base_url' => $this->baseUrl,
]);
}
public function getNewInstance(): Discovery
{
return \HubSpot\Factory::createWithAccessToken($this->accessToken);
}
/**
* Secondly and daily limits for Hubspot API
*
* Product Tier: Free & Starter | Professional & Enterprise | API add-on (any tier)
* Burst: 100/10 seconds | 150/10 seconds | 200/10 seconds
* Daily: 250,000 | 500,000 | 1,000,000
*
* Official documentation states: The search endpoints are rate limited to five requests per second.
* Since with 5 RPS were still hitting secondly rate limits we lowered it to 4
*/
public function getPaginatedData(array $payload, string $type, int $offset = 0): array
{
$total = 0;
$lastId = null;
$rows = [];
foreach ($this->getPaginatedDataGenerator($payload, $type, $offset, $total, $lastId) as $row) {
$rows[] = $row;
}
return ['results' => $rows, 'total' => $total, 'last_record' => $lastId];
}
/**
* @throws HubspotException
* @throws SocialAccountTokenInvalidException
* @throws BadRequest
*/
public function getPaginatedDataGenerator(
array $payload,
string $type,
int $offset = 0,
int &$total = 0,
?string &$lastRecordId = null
): \Generator {
return $this->paginationService->getPaginatedDataGenerator(
$this,
$payload,
$type,
$offset,
$total,
$lastRecordId
);
}
/**
* Execute a search request against HubSpot CRM objects with rate limiting.
*
* @param string $objectType The object type ('deals', 'companies', 'contacts', 'calls')
* @param array<string, mixed> $payload The search payload with filters, sorts, properties, etc.
* @return array The search response with 'results', 'total', 'paging' keys
* @throws RateLimitException When rate limit is hit
* @throws HubspotException On API errors
*/
public function search(string $objectType, array $payload): array
{
$endpoint = self::BASE_URL . "/crm/v3/objects/{$objectType}/search";
return $this->executeRequest(function () use ($endpoint, $payload) {
$response = $this->getInstance()->getClient()->request('POST', $endpoint, ['json' => $payload]);
return $response->toArray();
});
}
/**
* @throws DealApiException
* @throws CrmException
*/
public function getOpportunityById(string $crmId, array $fields): array
{
try {
$deal = $this->getNewInstance()->crm()->deals()->basicApi()->getById(
$crmId,
implode(',', $fields),
'companies,contacts'
);
} catch (DealApiException $e) {
$this->log->info('[Hubspot] Failed to fetch opportunity', [
'crm_id' => $crmId,
'reason' => $e->getMessage(),
]);
throw $e;
}
if (! $deal instanceof DealWithAssociations) {
throw new CrmException('Deal not found');
}
return [
'id' => $deal->getId(),
'properties' => $deal->getProperties(),
'associations' => $deal->getAssociations(),
];
}
/**
* Generic batch read method for HubSpot objects
*
* @param string $objectType The object type ('deals', 'companies', 'contacts')
* @param array<string> $crmIds Array of HubSpot object IDs (max 100)
* @param array<string> $fields Array of property names to fetch
*
* @return array<string, array> Array keyed by CRM ID with object data
*/
private function batchReadObjects(string $objectType, array $crmIds, array $fields): array
{
if (empty($crmIds)) {
return [];
}
$this->validateBatchSize($objectType, $crmIds);
$this->ensureValidToken();
try {
$batchConfig = $this->createBatchConfiguration($objectType);
$batchReadRequest = $this->prepareBatchRequest($batchConfig, $crmIds, $fields);
$response = $batchConfig['api']->read($batchReadRequest);
$this->validateApiResponse($response, $objectType);
$results = $this->processApiResults($response);
$this->logBatchResults($objectType, $crmIds, $results);
return $results;
} catch (\Throwable $e) {
$this->handleBatchError($e, $objectType, $crmIds);
}
}
private function validateBatchSize(string $objectType, array $crmIds): void
{
if (count($crmIds) > 100) {
throw new \InvalidArgumentException("Batch size cannot exceed 100 {$objectType}");
}
}
private function createBatchConfiguration(string $objectType): array
{
$configurations = [
'deals' => [
'batchReadRequest' => new \HubSpot\Client\Crm\Deals\Model\BatchReadInputSimplePublicObjectId(),
'inputClass' => \HubSpot\Client\Crm\Deals\Model\SimplePublicObjectId::class,
'api' => $this->getNewInstance()->crm()->deals()->batchApi(),
],
'companies' => [
'batchReadRequest' => new \HubSpot\Client\Crm\Companies\Model\BatchReadInputSimplePublicObjectId(),
'inputClass' => \HubSpot\Client\Crm\Companies\Model\SimplePublicObjectId::class,
'api' => $this->getNewInstance()->crm()->companies()->batchApi(),
],
'contacts' => [
'batchReadRequest' => new \HubSpot\Client\Crm\Contacts\Model\BatchReadInputSimplePublicObjectId(),
'inputClass' => \HubSpot\Client\Crm\Contacts\Model\SimplePublicObjectId::class,
'api' => $this->getNewInstance()->crm()->contacts()->batchApi(),
],
];
if (! isset($configurations[$objectType])) {
throw new \InvalidArgumentException("Unsupported object type: {$objectType}");
}
return $configurations[$objectType];
}
private function prepareBatchRequest(array $batchConfig, array $crmIds, array $fields): object
{
$batchReadRequest = $batchConfig['batchReadRequest'];
$inputClass = $batchConfig['inputClass'];
$inputs = array_map(function ($crmId) use ($inputClass) {
$input = new $inputClass();
$input->setId($crmId);
return $input;
}, $crmIds);
$batchReadRequest->setInputs($inputs);
$batchReadRequest->setProperties($fields);
return $batchReadRequest;
}
private function validateApiResponse($response, string $objectType): void
{
if (! $response) {
throw new CrmException("HubSpot API returned null response for {$objectType} batch read");
}
}
private function processApiResults($response): array
{
$results = [];
$responseResults = $response->getResults();
if ($responseResults) {
foreach ($responseResults as $object) {
if ($object && $object->getId()) {
$results[$object->getId()] = [
'id' => $object->getId(),
'properties' => $object->getProperties() ?: [],
];
}
}
}
return $results;
}
private function logBatchResults(string $objectType, array $crmIds, array $results): void
{
$this->log->info("[HubSpot] Batch fetched {$objectType}", [
'requested_count' => count($crmIds),
'returned_count' => count($results),
'crm_ids' => $crmIds,
]);
}
private function handleBatchError(\Throwable $e, string $objectType, array $crmIds): void
{
$errorMessage = $e->getMessage() ?: 'Unknown error';
$errorTrace = $e->getTraceAsString() ?: 'No trace available';
$this->log->error("[HubSpot] Failed to batch fetch {$objectType}", [
'crm_ids' => $crmIds,
'error' => $errorMessage,
'trace' => $errorTrace,
]);
throw new CrmException("Failed to batch fetch {$objectType}: " . $errorMessage);
}
/**
* Batch read multiple opportunities by their CRM IDs
*
* @param array<string> $crmIds Array of HubSpot deal IDs (max 100)
* @param array<string> $fields Array of property names to fetch
*
* @return array<string, array> Array keyed by CRM ID with opportunity data
*/
public function getOpportunitiesByIds(array $crmIds, array $fields): array
{
return $this->batchReadObjects('deals', $crmIds, $fields);
}
/**
* Batch read multiple companies by their CRM IDs
*
* @param array<string> $crmIds Array of HubSpot company IDs (max 100)
* @param array<string> $fields Array of property names to fetch
*
* @return array<string, array> Array keyed by CRM ID with company data
*/
public function getCompaniesByIds(array $crmIds, array $fields): array
{
return $this->batchReadObjects('companies', $crmIds, $fields);
}
/**
* Batch read multiple contacts by their CRM IDs
*
* @param array<string> $crmIds Array of HubSpot contact IDs (max 100)
* @param array<string> $fields Array of property names to fetch
*
* @return array<string, array> Array keyed by CRM ID with contact data
*/
public function getContactsByIds(array $crmIds, array $fields): array
{
return $this->batchReadObjects('contacts', $crmIds, $fields);
}
/**
* @throws CompanyApiException
* @throws CrmException
*/
public function getAccountById(string $crmId, array $fields): array
{
try {
$company = $this->getNewInstance()->crm()->companies()->basicApi()->getById(
$crmId,
implode(',', $fields),
);
} catch (CompanyApiException $e) {
$this->log->info('[Hubspot] Failed to fetch account', [
'crm_id' => $crmId,
'reason' => $e->getMessage(),
]);
throw $e;
}
if (! $company instanceof CompaniesWithAssociations) {
throw new CrmException('Account not found');
}
return [
'id' => $company->getId(),
'properties' => $company->getProperties(),
];
}
/**
* @throws ContactApiException
* @throws CrmException
*/
public function getContactById(string $crmId, array $fields): array
{
try {
$contact = $this->getNewInstance()->crm()->contacts()->basicApi()->getById(
$crmId,
implode(',', $fields)
);
} catch (ContactApiException $e) {
$this->log->info('[Hubspot] Failed to fetch contact', [
'crm_id' => $crmId,
'reason' => $e->getMessage(),
]);
throw $e;
}
if (! $contact instanceof ContactsWithAssociations) {
throw new CrmException('Contact not found');
}
return [
'id' => $contact->getId(),
'properties' => $contact->getProperties(),
];
}
/**
* This is email search request that Hubspot offers as GET (more generous quota)
*/
public function getContactByEmail(string $email, array $fields = []): array
{
try {
$contact = $this->getNewInstance()->crm()->contacts()->basicApi()->getById(
$email,
implode(',', $fields),
null,
false,
'email'
);
return [
'id' => $contact->getId(),
'properties' => $contact->getProperties(),
];
} catch (ContactApiException $e) {
$this->log->info('[Hubspot] Failed to fetch contact', [
'email' => $email,
'reason' => $e->getMessage(),
]);
return [];
}
}
/**
* @throws CrmException
*/
public function fetchProperty(string $objectType, string $propertyId): Property
{
$result = $this->getNewInstance()->crm()->properties()->coreApi()->getByName($objectType, $propertyId);
if (! $result instanceof Property) {
$this->log->error('[Hubspot] Failed to fetch property', [
'object_type' => $objectType,
'property_id' => $propertyId,
'reason' => $result->getMessage(),
]);
throw new CrmException('Failed to fetch property');
}
return $result;
}
/**
* @return array<CrmFieldOption>
*/
public function fetchPropertyOptions(string $objectType, string $propertyId): array
{
/** @var array<CrmFieldOption> */
return $this->fetchProperty($objectType, $propertyId)->getOptions();
}
/**
* @return array<array{id:string, label:string, deleted:bool}>
*/
public function fetchCallDispositions(): array
{
/** @var Response $response */
$response = $this->getInstance()->engagements()->getCallDispositions();
/**
* @var array<array{
* id:string,
* label:string,
* deleted: bool
* }>
*/
return $response->toArray();
}
/**
* @return array<CrmFieldOption>
*/
public function fetchOpportunityPipelineStages(): array
{
$stages = [];
$apiResponse = $this->getNewInstance()->crm()->pipelines()->pipelinesApi()->getAll('deals');
if ($apiResponse instanceof Error) {
$this->log->error('[Hubspot] Failed to fetch opportunity pipelines', [
'reason' => $apiResponse->getMessage(),
]);
return [];
}
foreach ($apiResponse->getResults() as $pipeline) {
$pipelineStages = array_map(
static function (PipelineStage $stage) {
return [
'id' => $stage->getId(),
'label' => $stage->getLabel(),
];
},
$pipeline->getStages()
);
$stages = array_merge($stages, $pipelineStages);
}
return $stages;
}
public function fetchOpportunityPipelines(): array
{
$pipelines = [];
try {
$apiResponse = $this->makeRequest('/crm/v3/pipelines/deals');
} catch (\Exception $e) {
$this->log->info('[Hubspot] Failed to fetch opportunity pipelines', [
'reason' => $e->getMessage(),
]);
return [];
}
$response = $apiResponse->toArray();
foreach ($response['results'] as $pipeline) {
$pipelines[] = [
'id' => $pipeline['id'],
'label' => $pipeline['label'],
];
}
return $pipelines;
}
/**
* @return array<CrmFieldOption>
*/
public function fetchMeetingOutcomeFieldOptions(Field $field): array
{
return $field->getCrmProviderId() === 'meetingOutcome'
? $this->fetchMeetingOutcomeTypes()
: $this->fetchCallActivityTypes();
}
public function fetchMeetingOutcomeTypes(): array
{
return $this->extractMeetingTypeOptions(
'[URL_WITH_CREDENTIALS] Response $response */
$response = $this->getInstance()
->getClient()
->request('GET', $endpoint);
/**
* @var array<array{
* value: string,
* label: string,
* displayOrder: int
* }> $optionData
*/
$optionData = $response->toArray()['options'] ?? [];
$options = [];
foreach ($optionData as $item) {
$options[] = [
'id' => $item['value'],
'value' => $item['value'],
'label' => $item['label'],
'display_order' => $item['displayOrder'],
];
}
return $options;
}
/**
* @return array<CrmFieldOption>
*/
public function fetchDispositionFieldOptions(): array
{
$options = [];
$dispositions = $this->fetchCallDispositions();
foreach ($dispositions as $disposition) {
if ($disposition['deleted'] !== false) {
continue;
}
$option['value'] = $disposition['id'];
$option['id'] = $disposition['id'];
$option['label'] = $disposition['label'];
$options[] = $option;
}
return $options;
}
/**
* @return array<CrmFieldOption>
*/
public function fetchOpportunityFieldOptions(Field $field): array
{
if ($field->isStageField()) {
return $this->fetchOpportunityPipelineStages();
}
if ($field->isPipelineField()) {
return $this->fetchOpportunityPipelines();
}
return $this->fetchPropertyOptions('deals', $field->getCrmProviderId());
}
/**
* @throws BadRequest
* @throws HubspotException
*/
public function makeRequest(string $endpoint, $method = 'GET', $payload = [], ?string $queryString = null)
{
$endpoint = self::BASE_URL . $endpoint;
if ($method === 'GET') {
return $this->getInstance()->getClient()?->request(
method: $method,
endpoint: $endpoint,
query_string: $queryString
);
} else {
return $this->getInstance()->getClient()->request($method, $endpoint, [
'json' => ($payload),
]);
}
}
/**
* @throws BadRequest
* @throws HubspotException
*/
public function createMeeting(array $payload): Response
{
$endpoint = '/crm/v3/objects/meetings';
return $this->makeRequest($endpoint, 'POST', $payload);
}
/**
* @throws BadRequest
* @throws HubspotException
*/
public function updateMeeting(string $meetingId, array $payload): Response
{
$endpoint = '/crm/v3/objects/meetings/' . $meetingId;
return $this->makeRequest($endpoint, 'PATCH', $payload);
}
/**
* @throws \Exception
*/
public function createNote(
string $body,
string $ownerId,
int $timestamp,
string $objectId,
NoteObject $noteObject
): ?string {
try {
$noteInput = new SimplePublicObjectInput([
'properties' => [
'hs_note_body' => $body,
'hubspot_owner_id' => $ownerId,
'hs_timestamp' => $timestamp,
],
]);
// Create note
$note = $this->getNewInstance()->crm()->objects()->basicApi()->create('note', $noteInput);
$this->getNewInstance()->crm()->objects()->associationsApi()->create(
'note',
$note->getId(),
$this->getNoteObject($noteObject),
$objectId,
$this->getNoteAssociationType($noteObject),
);
return $note->getId();
} catch (\Exception $e) {
$this->log->error('[Hubspot] Failed to create note', [
'objectId' => $objectId,
'noteObject' => $noteObject->getObjectType(),
'reason' => $e->getMessage(),
]);
\Sentry::captureException($e);
}
return null;
}
public function updateEngagement(string $objectId, array $engagement, array $metadata): void
{
$this->getInstance()->engagements()->update($objectId, $engagement, $metadata);
}
public function getEngagementData(string $engagementId): array
{
$engagement = $this->getInstance()->engagements()->get($engagementId);
return $engagement->toArray();
}
public function createEngagement(array $engagement, array $associations, array $metadata): Response
{
return $this->getInstance()
->engagements()
->create($engagement, $associations, $metadata);
}
public function isUnauthorizedException(\Exception $e): bool
{
// Check for specific HubSpot API exception types first
if ($e instanceof BadRequest) {
// BadRequest can contain 401 status codes
return $e->getCode() === 401;
}
// Check for HTTP client exceptions with status codes
if ($e instanceof \GuzzleHttp\Exception\RequestException && $e->hasResponse()) {
$response = $e->getResponse();
if ($response !== null) {
return $response->getStatusCode() === 401;
}
}
// Check for Guzzle HTTP exceptions
if ($e instanceof \GuzzleHttp\Exception\ClientException) {
return $e->getCode() === 401;
}
// Fallback to string matching as last resort, but be more specific
$message = strtolower($e->getMessage());
return str_contains($message, '401 unauthorized') ||
str_contains($message, 'http 401') ||
str_contains($message, 'status code 401') ||
(preg_match('/\b401\b/', $message) && str_contains($message, 'unauthorized'));
}
/**
* Validates and refreshes the access token if needed before API requests.
* This ensures long-running processes don't fail due to token expiration.
*
* @throws SocialAccountTokenInvalidException
*/
public function ensureValidToken(): void
{
if ($this->oauthAccount === null) {
return;
}
$newToken = $this->tokenManager->ensureValidToken($this->oauthAccount);
if ($newToken !== null) {
$this->accessToken = $newToken;
}
}
public function getConfig()
{
return $this->config;
}
// returns only active (archived=false)
public function getOwners(): array
{
return $this->getNewInstance()->crm()->owners()->getAll();
}
/**
* @param bool $archived
*
* @return array<Owner>|[]
*/
public function getOwnersArchived(bool $archived = true): array
{
$endpoint = '/crm/v3/owners';
$queryParams = [
'archived' => $archived ? 'true' : 'false',
];
$queryString = http_build_query($queryParams);
$owners = [];
try {
$response = $this->makeRequest(endpoint: $endpoint, queryString: $queryString);
$responseData = $response?->toArray();
foreach ($responseData['results'] as $result) {
try {
$owners[] = Owner::create($result);
} catch (Throwable $e) {
$this->log->error('[HubSpot] Failed to process owner data', [
'result' => $result,
'error' => $e->getMessage(),
]);
continue;
}
}
} catch (Throwable $e) {
$this->log->error('HubSpot] Failed to fetch owners', [
'archived' => $archived,
'error' => $e->getMessage(),
]);
return [];
}
return $owners;
}
public function getMeeting(string $engagementId): ObjectWithAssociations
{
return $this->getNewInstance()->crm()->objects()->basicApi()
->getById('meeting', $engagementId, null, 'contact,company,deal');
}
public function deleteEngagement(string $engagementId): void
{
$this->getInstance()->engagements()->delete((int) $engagementId);
}
public function getAssociationsData(array $ids, string $fromObject, string $toObject): array
{
$associationData = [];
$idChunks = array_chunk($ids, self::ASSOCIATIONS_BATCH_SIZE_LIMIT);
foreach ($idChunks as $idChunk) {
try {
$batchInput = new \HubSpot\Client\Crm\Associations\Model\BatchInputPublicObjectId();
$batchInput->setInputs(array_map(function ($id) {
$publicObjectId = new \HubSpot\Client\Crm\Associations\Model\PublicObjectId();
$publicObjectId->setId($id);
return $publicObjectId;
}, $idChunk));
$associatedObjectsData = $this
->getNewInstance()
->crm()
->associations()
->batchApi()
->read($fromObject, $toObject, $batchInput);
if ($associatedObjectsData instanceof \HubSpot\Client\Crm\Associations\Model\BatchResponsePublicAssociationMulti) {
foreach ($associatedObjectsData->getResults() as $association) {
$from = $association->getFrom()->getId();
$toAssociations = $association->getTo();
if (! empty($toAssociations)) {
$associationData[$from] = array_map(function ($item) {
return $item->getId();
}, $toAssociations);
}
}
}
// } catch (RateLimitException $e) {
// throw $e;
} catch (\Exception $e) {
$this->log->error('[Hubspot] Failed to fetch associations', [
'from_object' => $fromObject,
'to_object' => $toObject,
'reason' => $e->getMessage(),
]);
}
}
return $associationData;
}
/**
* @throws \Exception
*/
private function getNoteAssociationType(NoteObject $noteObject): string
{
return match($noteObject) {
NoteObject::Opportunity => 'note_to_deal',
NoteObject::Lead, NoteObject::Contact => 'note_to_contact', // or 'note_to_lead' if your portal supports it
NoteObject::Account => 'note_to_company',
NoteObject::Call, NoteObject::Event => throw new \Exception('Not supported'),
};
}
/**
* @throws \Exception
*/
private function getNoteObject(NoteObject $noteObject): string
{
return match($noteObject) {
NoteObject::Opportunity => 'deal',
NoteObject::Lead, NoteObject::Contact => 'contact',
NoteObject::Account => 'company',
NoteObject::Call, NoteObject::Event => throw new \Exception('Not supported'),
};
}
public function addAssociations(string $objectType, string $associationType, array $payload): Response
{
$endpoint = "/crm/v4/associations/$objectType/$associationType/batch/create";
return $this->makeRequest($endpoint, 'POST', $payload);
}
public function removeAssociations(string $objectType, string $associationType, array $payload): Response
{
$endpoint = "/crm/v4/associations/$objectType/$associationType/batch/archive";
return $this->makeRequest($endpoint, 'POST', $payload);
}
}
Show Replace Field
Search History
429
New Line
Match Case
Words
Regex
Replace History
Replace
New Line
Preserve case
1/4
Previous Occurrence
Next Occurrence
Filter Search Results
Open in Window, Multiple Cursors
Click to highlight
Close
Sync Changes
Hide This Notification
Code changed:
Hide
54
Previous Highlighted Error
Next Highlighted Error
[2026-05-11 11:08:45] local.INFO: Jiminny\Console\Commands\Command::run Memory usage before starting command {"command":"mailbox:batch:retry-failed","memoryBeforeCommandInMb":60.0,"memoryPeakBeforeCommandInMb":99.727} {"correlation_id":"43b1fb67-9aac-4fc6-9ced-689ecda5c548","trace_id":"60028d0e-dcd8-496a-a7ba-3a04b8d646e2"}
[2026-05-11 11:08:45] local.INFO: [Commands/AsyncUpdateEsEntities] Starting ES update worker {"pid":72650,"workerId":"","target":"activities"} {"correlation_id":"6d49ffdc-2ed7-4eae-a1ee-e25ca95bbea8","trace_id":"906573b5-005c-4820-8a32-3b0703ea86dd"}
[2026-05-11 11:08:46] local.INFO: Jiminny\Console\Commands\Command::run Memory usage for command {"command":"mailbox:batch:retry-failed","memoryBeforeCommandInMb":60.0,"memoryAfterCommandInMB":60.0,"memoryPeakBeforeCommandInMb":99.727,"memoryPeakAfterCommandInMB":99.727} {"correlation_id":"43b1fb67-9aac-4fc6-9ced-689ecda5c548","trace_id":"60028d0e-dcd8-496a-a7ba-3a04b8d646e2"}
[2026-05-11 11:09:12] local.INFO: [MatchActivityCrmData] Starting CRM data matching {"activity":615092,"remote_search":true,"set_configuration":2,"old_state":{"lead_id":null,"contact_id":null,"account_id":26,"opportunity_id":22,"stage_id":89}} {"correlation_id":"f33d47cb-76c6-4c27-a641-48cbf69e623d","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:12] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":615092} {"correlation_id":"f33d47cb-76c6-4c27-a641-48cbf69e623d","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:12] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":615092,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"f33d47cb-76c6-4c27-a641-48cbf69e623d","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:12] local.INFO: [MatchActivityCrmData] Participants old state {"activity":615092,"participants":[{"id":1004102,"user_id":null,"contact_id":null,"lead_id":null},{"id":1004103,"user_id":89,"contact_id":null,"lead_id":null}]} {"correlation_id":"f33d47cb-76c6-4c27-a641-48cbf69e623d","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:12] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"f33d47cb-76c6-4c27-a641-48cbf69e623d","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:12] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"f33d47cb-76c6-4c27-a641-48cbf69e623d","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:12] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"f33d47cb-76c6-4c27-a641-48cbf69e623d","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:12] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"f33d47cb-76c6-4c27-a641-48cbf69e623d","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:12] local.INFO: [Prospect match] Cache miss, calling the API {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"f33d47cb-76c6-4c27-a641-48cbf69e623d","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:13] local.INFO: [Hubspot] Failed to fetch contact {"email":"[EMAIL]","reason":"[404] Client error: `GET https://api.hubapi.com/crm/v3/objects/contacts/nikolay.nikolov%40jiminny.com?properties=email%2Cfirstname%2Clastname%2Ccountry%2Cphone%2Cmobilephone%2Cjobtitle%2Chubspot_owner_id%2Cassociatedcompanyid%2Cphoto&archived=0&idProperty=email` resulted in a `404 Not Found` response"} {"correlation_id":"f33d47cb-76c6-4c27-a641-48cbf69e623d","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:13] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"f33d47cb-76c6-4c27-a641-48cbf69e623d","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:13] local.WARNING: [Hubspot] No retry-after header or known message, using default {"exception_class":"SevenShores\\Hubspot\\Exceptions\\BadRequest","message":""} {"correlation_id":"f33d47cb-76c6-4c27-a641-48cbf69e623d","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:13] local.WARNING: [Hubspot] Received 429 from API {"team_id":2,"config_id":2,"retry_after":10,"message":"","reason":"Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response:
{\"status\":\"error\",\"message\":\"You have reached your secondly limit.\",\"errorType\":\"RATE_LIMIT\",\"correlationId\":\"019e16ba-1 (truncated...)
"} {"correlation_id":"f33d47cb-76c6-4c27-a641-48cbf69e623d","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:13] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":10,"delay":12} {"correlation_id":"f33d47cb-76c6-4c27-a641-48cbf69e623d","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [MatchActivityCrmData] Starting CRM data matching {"activity":614436,"remote_search":true,"set_configuration":2,"old_state":{"lead_id":null,"contact_id":null,"account_id":26,"opportunity_id":22,"stage_id":89}} {"correlation_id":"ccafe863-7885-4971-96fb-87ef6dd4adf3","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":614436} {"correlation_id":"ccafe863-7885-4971-96fb-87ef6dd4adf3","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":614436,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"ccafe863-7885-4971-96fb-87ef6dd4adf3","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [MatchActivityCrmData] Participants old state {"activity":614436,"participants":[{"id":1002751,"user_id":null,"contact_id":null,"lead_id":null},{"id":1002752,"user_id":89,"contact_id":null,"lead_id":null}]} {"correlation_id":"ccafe863-7885-4971-96fb-87ef6dd4adf3","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"ccafe863-7885-4971-96fb-87ef6dd4adf3","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"ccafe863-7885-4971-96fb-87ef6dd4adf3","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"ccafe863-7885-4971-96fb-87ef6dd4adf3","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"ccafe863-7885-4971-96fb-87ef6dd4adf3","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [Prospect match] Cache / local search hit {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"ccafe863-7885-4971-96fb-87ef6dd4adf3","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"ccafe863-7885-4971-96fb-87ef6dd4adf3","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":10,"delay":10} {"correlation_id":"ccafe863-7885-4971-96fb-87ef6dd4adf3","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [MatchActivityCrmData] Starting CRM data matching {"activity":614382,"remote_search":true,"set_configuration":2,"old_state":{"lead_id":null,"contact_id":null,"account_id":26,"opportunity_id":22,"stage_id":89}} {"correlation_id":"f00a4506-adfe-4fdc-b932-e6d2bc751fde","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":614382} {"correlation_id":"f00a4506-adfe-4fdc-b932-e6d2bc751fde","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":614382,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"f00a4506-adfe-4fdc-b932-e6d2bc751fde","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [MatchActivityCrmData] Participants old state {"activity":614382,"participants":[{"id":1002632,"user_id":null,"contact_id":null,"lead_id":null},{"id":1002633,"user_id":89,"contact_id":null,"lead_id":null}]} {"correlation_id":"f00a4506-adfe-4fdc-b932-e6d2bc751fde","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"f00a4506-adfe-4fdc-b932-e6d2bc751fde","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"f00a4506-adfe-4fdc-b932-e6d2bc751fde","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"f00a4506-adfe-4fdc-b932-e6d2bc751fde","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"f00a4506-adfe-4fdc-b932-e6d2bc751fde","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [Prospect match] Cache / local search hit {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"f00a4506-adfe-4fdc-b932-e6d2bc751fde","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"f00a4506-adfe-4fdc-b932-e6d2bc751fde","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":10,"delay":12} {"correlation_id":"f00a4506-adfe-4fdc-b932-e6d2bc751fde","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [MatchActivityCrmData] Starting CRM data matching {"activity":614381,"remote_search":true,"set_configuration":2,"old_state":{"lead_id":null,"contact_id":null,"account_id":26,"opportunity_id":22,"stage_id":89}} {"correlation_id":"36bd73f5-17f9-4f70-8254-2214543c7f8e","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":614381} {"correlation_id":"36bd73f5-17f9-4f70-8254-2214543c7f8e","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":614381,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"36bd73f5-17f9-4f70-8254-2214543c7f8e","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [MatchActivityCrmData] Participants old state {"activity":614381,"participants":[{"id":1002630,"user_id":null,"contact_id":null,"lead_id":null},{"id":1002631,"user_id":89,"contact_id":null,"lead_id":null}]} {"correlation_id":"36bd73f5-17f9-4f70-8254-2214543c7f8e","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"36bd73f5-17f9-4f70-8254-2214543c7f8e","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"36bd73f5-17f9-4f70-8254-2214543c7f8e","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"36bd73f5-17f9-4f70-8254-2214543c7f8e","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"36bd73f5-17f9-4f70-8254-2214543c7f8e","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [Prospect match] Cache / local search hit {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"36bd73f5-17f9-4f70-8254-2214543c7f8e","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"36bd73f5-17f9-4f70-8254-2214543c7f8e","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":10,"delay":10} {"correlation_id":"36bd73f5-17f9-4f70-8254-2214543c7f8e","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:15] local.INFO: [MatchActivityCrmData] Starting CRM data matching {"activity":614378,"remote_search":true,"set_configuration":2,"old_state":{"lead_id":null,"contact_id":6167,"account_id":null,"opportunity_id":null,"stage_id":null}} {"correlation_id":"a4a3a058-ec22-4f04-bb14-a9bff18ce214","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:15] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":614378} {"correlation_id":"a4a3a058-ec22-4f04-bb14-a9bff18ce214","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:15] local.INFO: [ Asyn...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"bounds":{"left":0.025930852,"top":0.019952115,"width":0.03856383,"height":0.025538707},"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JY-20725-handle-HS-search-rate-limit, menu","depth":5,"bounds":{"left":0.064494684,"top":0.019952115,"width":0.09541223,"height":0.025538707},"on_screen":true,"help_text":"Git Branch: JY-20725-handle-HS-search-rate-limit","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"bounds":{"left":0.82413566,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"HandleHubspotRateLimitTest","depth":6,"bounds":{"left":0.8394282,"top":0.019952115,"width":0.076130316,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'HandleHubspotRateLimitTest'","depth":6,"bounds":{"left":0.9155585,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Debug 'HandleHubspotRateLimitTest'","depth":6,"bounds":{"left":0.9268617,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More Actions","depth":6,"bounds":{"left":0.9381649,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JetBrains AI","depth":5,"bounds":{"left":0.96609044,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Search Everywhere","depth":5,"bounds":{"left":0.9773936,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"IDE and Project Settings","depth":5,"bounds":{"left":0.9886968,"top":0.019952115,"width":0.011303186,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.042220745,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"2","depth":4,"bounds":{"left":0.50731385,"top":0.17478053,"width":0.007978723,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"67","depth":4,"bounds":{"left":0.51728725,"top":0.17478053,"width":0.009973404,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"3","depth":4,"bounds":{"left":0.52925533,"top":0.17478053,"width":0.007978723,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"bounds":{"left":0.53889626,"top":0.17318435,"width":0.00731383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Next Highlighted Error","depth":4,"bounds":{"left":0.5462101,"top":0.17318435,"width":0.006981383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Services\\Crm\\Hubspot;\n\nuse HubSpot\\Client\\Crm\\Deals\\ApiException as DealApiException;\nuse HubSpot\\Client\\Crm\\Contacts\\ApiException as ContactApiException;\nuse HubSpot\\Client\\Crm\\Companies\\ApiException as CompanyApiException;\nuse HubSpot\\Client\\Crm\\Contacts\\Model\\SimplePublicObjectWithAssociations as ContactsWithAssociations;\nuse HubSpot\\Client\\Crm\\Companies\\Model\\SimplePublicObjectWithAssociations as CompaniesWithAssociations;\nuse HubSpot\\Client\\Crm\\Deals\\Model\\SimplePublicObjectWithAssociations as DealWithAssociations;\nuse HubSpot\\Client\\Crm\\Objects\\Model\\SimplePublicObjectInput;\nuse HubSpot\\Client\\Crm\\Objects\\Model\\SimplePublicObjectWithAssociations as ObjectWithAssociations;\nuse HubSpot\\Client\\Crm\\Pipelines\\Model\\Error;\nuse HubSpot\\Client\\Crm\\Pipelines\\Model\\PipelineStage;\nuse HubSpot\\Client\\Crm\\Properties\\Model\\Property;\nuse HubSpot\\Discovery\\Discovery;\nuse Jiminny\\Exceptions\\CrmException;\nuse Jiminny\\Exceptions\\RateLimitException;\nuse Jiminny\\Exceptions\\SocialAccountTokenInvalidException;\nuse Jiminny\\Jobs\\Crm\\NoteObject;\nuse Jiminny\\Models\\Crm\\Field;\nuse Jiminny\\Services\\Crm\\BaseClient;\nuse Jiminny\\Services\\Crm\\Hubspot\\DTO\\Response\\Owner;\nuse Jiminny\\Services\\SocialAccountService;\nuse SevenShores\\Hubspot\\Exceptions\\BadRequest;\nuse SevenShores\\Hubspot\\Exceptions\\HubspotException;\nuse SevenShores\\Hubspot\\Factory;\nuse SevenShores\\Hubspot\\Http\\Response;\nuse Jiminny\\Services\\Crm\\Hubspot\\Pagination\\HubspotPaginationService;\nuse Illuminate\\Support\\Facades\\Redis;\nuse Throwable;\n\n/**\n * @phpstan-type CrmFieldOption array{id:string, label:string, value?:string}\n */\nclass Client extends BaseClient implements HubspotClientInterface\n{\n public const string MIN_API_VERSION = '2';\n\n public const string BASE_URL = 'https://api.hubapi.com';\n\n public const int ASSOCIATIONS_BATCH_SIZE_LIMIT = 1000;\n\n private HubspotPaginationService $paginationService;\n private HubspotTokenManager $tokenManager;\n\n public function __construct(\n SocialAccountService $socialAccountService,\n HubspotPaginationService $paginationService,\n HubspotTokenManager $tokenManager\n ) {\n parent::__construct($socialAccountService);\n $this->paginationService = $paginationService;\n $this->tokenManager = $tokenManager;\n\n $this->setBaseUrl(self::BASE_URL);\n $this->setVersion(self::MIN_API_VERSION);\n }\n\n /**\n * Reacts to a rate limits (429) from HubSpot by translating it\n * into a RateLimitException carrying retry_after.\n *\n * Wrap any outbound HubSpot call (SDK or raw HTTP) like:\n *\n * $this->executeRequest(fn () => $this->getNewInstance()->crm()->...);\n *\n * @template T\n * @param callable(): T $apiCall\n * @return T\n *\n * @throws RateLimitException\n */\n private function executeRequest(callable $apiCall)\n {\n $cacheKey = $this->getRateLimitCacheKey();\n\n $cachedRetryAfter = Redis::get($cacheKey);\n if (is_string($cachedRetryAfter) && is_numeric($cachedRetryAfter)) {\n throw new RateLimitException(\n 'Hubspot rate limit (cached circuit-breaker)',\n (int) $cachedRetryAfter,\n );\n }\n\n try {\n return $apiCall();\n } catch (Throwable $e) {\n if ($this->isHubspotRateLimit($e)) {\n $retryAfter = $this->parseRetryAfter($e);\n\n Redis::setex($cacheKey, $retryAfter, (string) $retryAfter);\n\n $this->log->warning('[Hubspot] Received 429 from API', [\n 'team_id' => $this->config->team_id,\n 'config_id' => $this->config->getId(),\n 'retry_after' => $retryAfter,\n 'reason' => $e->getMessage(),\n ]);\n\n throw new RateLimitException('Hubspot returned 429', $retryAfter, $e);\n }\n\n throw $e;\n }\n }\n\n private function getRateLimitCacheKey(): string\n {\n return sprintf('hubspot:ratelimit:portal:%d', $this->config->getId());\n }\n\n public function isHubspotRateLimit(Throwable $e): bool\n {\n if ($e instanceof BadRequest\n || $e instanceof DealApiException\n || $e instanceof ContactApiException\n || $e instanceof CompanyApiException\n || $e instanceof \\GuzzleHttp\\Exception\\RequestException\n ) {\n return (int) $e->getCode() === 429;\n }\n\n return false;\n }\n\n public function parseRetryAfter(Throwable $e): int\n {\n if (method_exists($e, 'getResponseHeaders')) {\n $headers = $e->getResponseHeaders() ?: [];\n $value = $headers['Retry-After'] ?? $headers['retry-after'] ?? null;\n if (is_array($value)) {\n $value = $value[0] ?? null;\n }\n if (is_numeric($value)) {\n return (int) $value;\n }\n }\n\n $message = strtolower($e->getMessage()($e));\n\n if (str_contains($message, 'daily')) {\n return 600;\n }\n if (str_contains($message, 'ten secondly')) {\n return 10;\n }\n if (str_contains($message, 'secondly')) {\n return 1;\n }\n\n $this->log->warning('[Hubspot] No retry-after header or known message, using default', [\n 'exception_class' => get_class($e),\n 'message' => $message,\n ]);\n\n return 10;\n }\n\n public function parseMessage(Throwable $e): string\n {\n if (! method_exists($e, 'getResponseBody')) {\n return '';\n }\n\n $body = $e->getResponseBody();\n if (is_string($body)) {\n $body = json_decode($body, true) ?? [];\n }\n\n if (! is_array($body)) {\n return '';\n }\n\n return (string) ($body['message'] ?? '');\n }\n\n public function getMinimumApiVersion(): string\n {\n return self::MIN_API_VERSION;\n }\n\n public function getInstance(): Factory\n {\n return new Factory([\n 'key' => $this->accessToken,\n 'oauth2' => true,\n 'base_url' => $this->baseUrl,\n ]);\n }\n\n public function getNewInstance(): Discovery\n {\n return \\HubSpot\\Factory::createWithAccessToken($this->accessToken);\n }\n\n /**\n * Secondly and daily limits for Hubspot API\n *\n * Product Tier: Free & Starter | Professional & Enterprise | API add-on (any tier)\n * Burst: 100/10 seconds | 150/10 seconds | 200/10 seconds\n * Daily: 250,000 | 500,000 | 1,000,000\n *\n * Official documentation states: The search endpoints are rate limited to five requests per second.\n * Since with 5 RPS were still hitting secondly rate limits we lowered it to 4\n */\n public function getPaginatedData(array $payload, string $type, int $offset = 0): array\n {\n $total = 0;\n $lastId = null;\n $rows = [];\n foreach ($this->getPaginatedDataGenerator($payload, $type, $offset, $total, $lastId) as $row) {\n $rows[] = $row;\n }\n\n return ['results' => $rows, 'total' => $total, 'last_record' => $lastId];\n }\n\n /**\n * @throws HubspotException\n * @throws SocialAccountTokenInvalidException\n * @throws BadRequest\n */\n public function getPaginatedDataGenerator(\n array $payload,\n string $type,\n int $offset = 0,\n int &$total = 0,\n ?string &$lastRecordId = null\n ): \\Generator {\n return $this->paginationService->getPaginatedDataGenerator(\n $this,\n $payload,\n $type,\n $offset,\n $total,\n $lastRecordId\n );\n }\n\n /**\n * Execute a search request against HubSpot CRM objects with rate limiting.\n *\n * @param string $objectType The object type ('deals', 'companies', 'contacts', 'calls')\n * @param array<string, mixed> $payload The search payload with filters, sorts, properties, etc.\n * @return array The search response with 'results', 'total', 'paging' keys\n * @throws RateLimitException When rate limit is hit\n * @throws HubspotException On API errors\n */\n public function search(string $objectType, array $payload): array\n {\n $endpoint = self::BASE_URL . \"/crm/v3/objects/{$objectType}/search\";\n\n return $this->executeRequest(function () use ($endpoint, $payload) {\n $response = $this->getInstance()->getClient()->request('POST', $endpoint, ['json' => $payload]);\n\n return $response->toArray();\n });\n }\n\n /**\n * @throws DealApiException\n * @throws CrmException\n */\n public function getOpportunityById(string $crmId, array $fields): array\n {\n try {\n $deal = $this->getNewInstance()->crm()->deals()->basicApi()->getById(\n $crmId,\n implode(',', $fields),\n 'companies,contacts'\n );\n } catch (DealApiException $e) {\n $this->log->info('[Hubspot] Failed to fetch opportunity', [\n 'crm_id' => $crmId,\n 'reason' => $e->getMessage(),\n ]);\n\n throw $e;\n }\n\n if (! $deal instanceof DealWithAssociations) {\n throw new CrmException('Deal not found');\n }\n\n return [\n 'id' => $deal->getId(),\n 'properties' => $deal->getProperties(),\n 'associations' => $deal->getAssociations(),\n ];\n }\n\n /**\n * Generic batch read method for HubSpot objects\n *\n * @param string $objectType The object type ('deals', 'companies', 'contacts')\n * @param array<string> $crmIds Array of HubSpot object IDs (max 100)\n * @param array<string> $fields Array of property names to fetch\n *\n * @return array<string, array> Array keyed by CRM ID with object data\n */\n private function batchReadObjects(string $objectType, array $crmIds, array $fields): array\n {\n if (empty($crmIds)) {\n return [];\n }\n\n $this->validateBatchSize($objectType, $crmIds);\n $this->ensureValidToken();\n\n try {\n $batchConfig = $this->createBatchConfiguration($objectType);\n $batchReadRequest = $this->prepareBatchRequest($batchConfig, $crmIds, $fields);\n $response = $batchConfig['api']->read($batchReadRequest);\n\n $this->validateApiResponse($response, $objectType);\n\n $results = $this->processApiResults($response);\n $this->logBatchResults($objectType, $crmIds, $results);\n\n return $results;\n } catch (\\Throwable $e) {\n $this->handleBatchError($e, $objectType, $crmIds);\n }\n }\n\n private function validateBatchSize(string $objectType, array $crmIds): void\n {\n if (count($crmIds) > 100) {\n throw new \\InvalidArgumentException(\"Batch size cannot exceed 100 {$objectType}\");\n }\n }\n\n private function createBatchConfiguration(string $objectType): array\n {\n $configurations = [\n 'deals' => [\n 'batchReadRequest' => new \\HubSpot\\Client\\Crm\\Deals\\Model\\BatchReadInputSimplePublicObjectId(),\n 'inputClass' => \\HubSpot\\Client\\Crm\\Deals\\Model\\SimplePublicObjectId::class,\n 'api' => $this->getNewInstance()->crm()->deals()->batchApi(),\n ],\n 'companies' => [\n 'batchReadRequest' => new \\HubSpot\\Client\\Crm\\Companies\\Model\\BatchReadInputSimplePublicObjectId(),\n 'inputClass' => \\HubSpot\\Client\\Crm\\Companies\\Model\\SimplePublicObjectId::class,\n 'api' => $this->getNewInstance()->crm()->companies()->batchApi(),\n ],\n 'contacts' => [\n 'batchReadRequest' => new \\HubSpot\\Client\\Crm\\Contacts\\Model\\BatchReadInputSimplePublicObjectId(),\n 'inputClass' => \\HubSpot\\Client\\Crm\\Contacts\\Model\\SimplePublicObjectId::class,\n 'api' => $this->getNewInstance()->crm()->contacts()->batchApi(),\n ],\n ];\n\n if (! isset($configurations[$objectType])) {\n throw new \\InvalidArgumentException(\"Unsupported object type: {$objectType}\");\n }\n\n return $configurations[$objectType];\n }\n\n private function prepareBatchRequest(array $batchConfig, array $crmIds, array $fields): object\n {\n $batchReadRequest = $batchConfig['batchReadRequest'];\n $inputClass = $batchConfig['inputClass'];\n\n $inputs = array_map(function ($crmId) use ($inputClass) {\n $input = new $inputClass();\n $input->setId($crmId);\n\n return $input;\n }, $crmIds);\n\n $batchReadRequest->setInputs($inputs);\n $batchReadRequest->setProperties($fields);\n\n return $batchReadRequest;\n }\n\n private function validateApiResponse($response, string $objectType): void\n {\n if (! $response) {\n throw new CrmException(\"HubSpot API returned null response for {$objectType} batch read\");\n }\n }\n\n private function processApiResults($response): array\n {\n $results = [];\n $responseResults = $response->getResults();\n\n if ($responseResults) {\n foreach ($responseResults as $object) {\n if ($object && $object->getId()) {\n $results[$object->getId()] = [\n 'id' => $object->getId(),\n 'properties' => $object->getProperties() ?: [],\n ];\n }\n }\n }\n\n return $results;\n }\n\n private function logBatchResults(string $objectType, array $crmIds, array $results): void\n {\n $this->log->info(\"[HubSpot] Batch fetched {$objectType}\", [\n 'requested_count' => count($crmIds),\n 'returned_count' => count($results),\n 'crm_ids' => $crmIds,\n ]);\n }\n\n private function handleBatchError(\\Throwable $e, string $objectType, array $crmIds): void\n {\n $errorMessage = $e->getMessage() ?: 'Unknown error';\n $errorTrace = $e->getTraceAsString() ?: 'No trace available';\n\n $this->log->error(\"[HubSpot] Failed to batch fetch {$objectType}\", [\n 'crm_ids' => $crmIds,\n 'error' => $errorMessage,\n 'trace' => $errorTrace,\n ]);\n\n throw new CrmException(\"Failed to batch fetch {$objectType}: \" . $errorMessage);\n }\n\n /**\n * Batch read multiple opportunities by their CRM IDs\n *\n * @param array<string> $crmIds Array of HubSpot deal IDs (max 100)\n * @param array<string> $fields Array of property names to fetch\n *\n * @return array<string, array> Array keyed by CRM ID with opportunity data\n */\n public function getOpportunitiesByIds(array $crmIds, array $fields): array\n {\n return $this->batchReadObjects('deals', $crmIds, $fields);\n }\n\n /**\n * Batch read multiple companies by their CRM IDs\n *\n * @param array<string> $crmIds Array of HubSpot company IDs (max 100)\n * @param array<string> $fields Array of property names to fetch\n *\n * @return array<string, array> Array keyed by CRM ID with company data\n */\n public function getCompaniesByIds(array $crmIds, array $fields): array\n {\n return $this->batchReadObjects('companies', $crmIds, $fields);\n }\n\n /**\n * Batch read multiple contacts by their CRM IDs\n *\n * @param array<string> $crmIds Array of HubSpot contact IDs (max 100)\n * @param array<string> $fields Array of property names to fetch\n *\n * @return array<string, array> Array keyed by CRM ID with contact data\n */\n public function getContactsByIds(array $crmIds, array $fields): array\n {\n return $this->batchReadObjects('contacts', $crmIds, $fields);\n }\n\n /**\n * @throws CompanyApiException\n * @throws CrmException\n */\n public function getAccountById(string $crmId, array $fields): array\n {\n try {\n $company = $this->getNewInstance()->crm()->companies()->basicApi()->getById(\n $crmId,\n implode(',', $fields),\n );\n } catch (CompanyApiException $e) {\n $this->log->info('[Hubspot] Failed to fetch account', [\n 'crm_id' => $crmId,\n 'reason' => $e->getMessage(),\n ]);\n\n throw $e;\n }\n\n if (! $company instanceof CompaniesWithAssociations) {\n throw new CrmException('Account not found');\n }\n\n return [\n 'id' => $company->getId(),\n 'properties' => $company->getProperties(),\n ];\n }\n\n /**\n * @throws ContactApiException\n * @throws CrmException\n */\n public function getContactById(string $crmId, array $fields): array\n {\n try {\n $contact = $this->getNewInstance()->crm()->contacts()->basicApi()->getById(\n $crmId,\n implode(',', $fields)\n );\n } catch (ContactApiException $e) {\n $this->log->info('[Hubspot] Failed to fetch contact', [\n 'crm_id' => $crmId,\n 'reason' => $e->getMessage(),\n ]);\n\n throw $e;\n }\n\n if (! $contact instanceof ContactsWithAssociations) {\n throw new CrmException('Contact not found');\n }\n\n return [\n 'id' => $contact->getId(),\n 'properties' => $contact->getProperties(),\n ];\n }\n\n /**\n * This is email search request that Hubspot offers as GET (more generous quota)\n */\n public function getContactByEmail(string $email, array $fields = []): array\n {\n try {\n $contact = $this->getNewInstance()->crm()->contacts()->basicApi()->getById(\n $email,\n implode(',', $fields),\n null,\n false,\n 'email'\n );\n\n return [\n 'id' => $contact->getId(),\n 'properties' => $contact->getProperties(),\n ];\n } catch (ContactApiException $e) {\n $this->log->info('[Hubspot] Failed to fetch contact', [\n 'email' => $email,\n 'reason' => $e->getMessage(),\n ]);\n\n return [];\n }\n }\n\n /**\n * @throws CrmException\n */\n public function fetchProperty(string $objectType, string $propertyId): Property\n {\n $result = $this->getNewInstance()->crm()->properties()->coreApi()->getByName($objectType, $propertyId);\n\n if (! $result instanceof Property) {\n $this->log->error('[Hubspot] Failed to fetch property', [\n 'object_type' => $objectType,\n 'property_id' => $propertyId,\n 'reason' => $result->getMessage(),\n ]);\n\n throw new CrmException('Failed to fetch property');\n }\n\n return $result;\n }\n\n /**\n * @return array<CrmFieldOption>\n */\n public function fetchPropertyOptions(string $objectType, string $propertyId): array\n {\n /** @var array<CrmFieldOption> */\n return $this->fetchProperty($objectType, $propertyId)->getOptions();\n }\n\n /**\n * @return array<array{id:string, label:string, deleted:bool}>\n */\n public function fetchCallDispositions(): array\n {\n /** @var Response $response */\n $response = $this->getInstance()->engagements()->getCallDispositions();\n\n /**\n * @var array<array{\n * id:string,\n * label:string,\n * deleted: bool\n * }>\n */\n return $response->toArray();\n }\n\n /**\n * @return array<CrmFieldOption>\n */\n public function fetchOpportunityPipelineStages(): array\n {\n $stages = [];\n $apiResponse = $this->getNewInstance()->crm()->pipelines()->pipelinesApi()->getAll('deals');\n\n if ($apiResponse instanceof Error) {\n $this->log->error('[Hubspot] Failed to fetch opportunity pipelines', [\n 'reason' => $apiResponse->getMessage(),\n ]);\n\n return [];\n }\n\n foreach ($apiResponse->getResults() as $pipeline) {\n $pipelineStages = array_map(\n static function (PipelineStage $stage) {\n return [\n 'id' => $stage->getId(),\n 'label' => $stage->getLabel(),\n ];\n },\n $pipeline->getStages()\n );\n\n $stages = array_merge($stages, $pipelineStages);\n }\n\n return $stages;\n }\n\n public function fetchOpportunityPipelines(): array\n {\n $pipelines = [];\n\n try {\n $apiResponse = $this->makeRequest('/crm/v3/pipelines/deals');\n } catch (\\Exception $e) {\n $this->log->info('[Hubspot] Failed to fetch opportunity pipelines', [\n 'reason' => $e->getMessage(),\n ]);\n\n return [];\n }\n\n $response = $apiResponse->toArray();\n\n foreach ($response['results'] as $pipeline) {\n $pipelines[] = [\n 'id' => $pipeline['id'],\n 'label' => $pipeline['label'],\n ];\n }\n\n return $pipelines;\n }\n\n /**\n * @return array<CrmFieldOption>\n */\n public function fetchMeetingOutcomeFieldOptions(Field $field): array\n {\n return $field->getCrmProviderId() === 'meetingOutcome'\n ? $this->fetchMeetingOutcomeTypes()\n : $this->fetchCallActivityTypes();\n }\n\n public function fetchMeetingOutcomeTypes(): array\n {\n return $this->extractMeetingTypeOptions(\n 'https://api.hubapi.com/crm/v3/properties/meeting/hs_meeting_outcome'\n );\n }\n\n public function fetchCallActivityTypes(): array\n {\n return $this->extractMeetingTypeOptions(\n 'https://api.hubapi.com/crm/v3/properties/call/hs_activity_type'\n );\n }\n\n private function extractMeetingTypeOptions(string $endpoint): array\n {\n /** @var Response $response */\n $response = $this->getInstance()\n ->getClient()\n ->request('GET', $endpoint);\n\n /**\n * @var array<array{\n * value: string,\n * label: string,\n * displayOrder: int\n * }> $optionData\n */\n $optionData = $response->toArray()['options'] ?? [];\n\n $options = [];\n foreach ($optionData as $item) {\n $options[] = [\n 'id' => $item['value'],\n 'value' => $item['value'],\n 'label' => $item['label'],\n 'display_order' => $item['displayOrder'],\n ];\n }\n\n return $options;\n }\n\n /**\n * @return array<CrmFieldOption>\n */\n public function fetchDispositionFieldOptions(): array\n {\n $options = [];\n\n $dispositions = $this->fetchCallDispositions();\n\n foreach ($dispositions as $disposition) {\n if ($disposition['deleted'] !== false) {\n continue;\n }\n\n $option['value'] = $disposition['id'];\n $option['id'] = $disposition['id'];\n $option['label'] = $disposition['label'];\n\n $options[] = $option;\n }\n\n return $options;\n }\n\n /**\n * @return array<CrmFieldOption>\n */\n public function fetchOpportunityFieldOptions(Field $field): array\n {\n if ($field->isStageField()) {\n return $this->fetchOpportunityPipelineStages();\n }\n\n if ($field->isPipelineField()) {\n return $this->fetchOpportunityPipelines();\n }\n\n return $this->fetchPropertyOptions('deals', $field->getCrmProviderId());\n }\n\n /**\n * @throws BadRequest\n * @throws HubspotException\n */\n public function makeRequest(string $endpoint, $method = 'GET', $payload = [], ?string $queryString = null)\n {\n $endpoint = self::BASE_URL . $endpoint;\n\n if ($method === 'GET') {\n return $this->getInstance()->getClient()?->request(\n method: $method,\n endpoint: $endpoint,\n query_string: $queryString\n );\n } else {\n return $this->getInstance()->getClient()->request($method, $endpoint, [\n 'json' => ($payload),\n ]);\n }\n }\n\n /**\n * @throws BadRequest\n * @throws HubspotException\n */\n public function createMeeting(array $payload): Response\n {\n $endpoint = '/crm/v3/objects/meetings';\n\n return $this->makeRequest($endpoint, 'POST', $payload);\n }\n\n /**\n * @throws BadRequest\n * @throws HubspotException\n */\n public function updateMeeting(string $meetingId, array $payload): Response\n {\n $endpoint = '/crm/v3/objects/meetings/' . $meetingId;\n\n return $this->makeRequest($endpoint, 'PATCH', $payload);\n }\n\n /**\n * @throws \\Exception\n */\n public function createNote(\n string $body,\n string $ownerId,\n int $timestamp,\n string $objectId,\n NoteObject $noteObject\n ): ?string {\n try {\n $noteInput = new SimplePublicObjectInput([\n 'properties' => [\n 'hs_note_body' => $body,\n 'hubspot_owner_id' => $ownerId,\n 'hs_timestamp' => $timestamp,\n ],\n ]);\n\n // Create note\n $note = $this->getNewInstance()->crm()->objects()->basicApi()->create('note', $noteInput);\n\n $this->getNewInstance()->crm()->objects()->associationsApi()->create(\n 'note',\n $note->getId(),\n $this->getNoteObject($noteObject),\n $objectId,\n $this->getNoteAssociationType($noteObject),\n );\n\n return $note->getId();\n } catch (\\Exception $e) {\n $this->log->error('[Hubspot] Failed to create note', [\n 'objectId' => $objectId,\n 'noteObject' => $noteObject->getObjectType(),\n 'reason' => $e->getMessage(),\n ]);\n\n \\Sentry::captureException($e);\n }\n\n return null;\n }\n\n public function updateEngagement(string $objectId, array $engagement, array $metadata): void\n {\n $this->getInstance()->engagements()->update($objectId, $engagement, $metadata);\n }\n\n public function getEngagementData(string $engagementId): array\n {\n $engagement = $this->getInstance()->engagements()->get($engagementId);\n\n return $engagement->toArray();\n }\n\n public function createEngagement(array $engagement, array $associations, array $metadata): Response\n {\n return $this->getInstance()\n ->engagements()\n ->create($engagement, $associations, $metadata);\n }\n\n public function isUnauthorizedException(\\Exception $e): bool\n {\n // Check for specific HubSpot API exception types first\n if ($e instanceof BadRequest) {\n // BadRequest can contain 401 status codes\n return $e->getCode() === 401;\n }\n\n // Check for HTTP client exceptions with status codes\n if ($e instanceof \\GuzzleHttp\\Exception\\RequestException && $e->hasResponse()) {\n $response = $e->getResponse();\n if ($response !== null) {\n return $response->getStatusCode() === 401;\n }\n }\n\n // Check for Guzzle HTTP exceptions\n if ($e instanceof \\GuzzleHttp\\Exception\\ClientException) {\n return $e->getCode() === 401;\n }\n\n // Fallback to string matching as last resort, but be more specific\n $message = strtolower($e->getMessage());\n\n return str_contains($message, '401 unauthorized') ||\n str_contains($message, 'http 401') ||\n str_contains($message, 'status code 401') ||\n (preg_match('/\\b401\\b/', $message) && str_contains($message, 'unauthorized'));\n }\n\n /**\n * Validates and refreshes the access token if needed before API requests.\n * This ensures long-running processes don't fail due to token expiration.\n *\n * @throws SocialAccountTokenInvalidException\n */\n public function ensureValidToken(): void\n {\n if ($this->oauthAccount === null) {\n return;\n }\n\n $newToken = $this->tokenManager->ensureValidToken($this->oauthAccount);\n if ($newToken !== null) {\n $this->accessToken = $newToken;\n }\n }\n\n public function getConfig()\n {\n return $this->config;\n }\n\n // returns only active (archived=false)\n public function getOwners(): array\n {\n return $this->getNewInstance()->crm()->owners()->getAll();\n }\n\n /**\n * @param bool $archived\n *\n * @return array<Owner>|[]\n */\n public function getOwnersArchived(bool $archived = true): array\n {\n $endpoint = '/crm/v3/owners';\n $queryParams = [\n 'archived' => $archived ? 'true' : 'false',\n ];\n $queryString = http_build_query($queryParams);\n\n $owners = [];\n\n try {\n $response = $this->makeRequest(endpoint: $endpoint, queryString: $queryString);\n $responseData = $response?->toArray();\n\n foreach ($responseData['results'] as $result) {\n try {\n $owners[] = Owner::create($result);\n } catch (Throwable $e) {\n $this->log->error('[HubSpot] Failed to process owner data', [\n 'result' => $result,\n 'error' => $e->getMessage(),\n ]);\n\n continue;\n }\n }\n } catch (Throwable $e) {\n $this->log->error('HubSpot] Failed to fetch owners', [\n 'archived' => $archived,\n 'error' => $e->getMessage(),\n ]);\n\n return [];\n }\n\n return $owners;\n }\n\n public function getMeeting(string $engagementId): ObjectWithAssociations\n {\n return $this->getNewInstance()->crm()->objects()->basicApi()\n ->getById('meeting', $engagementId, null, 'contact,company,deal');\n }\n\n public function deleteEngagement(string $engagementId): void\n {\n $this->getInstance()->engagements()->delete((int) $engagementId);\n }\n\n public function getAssociationsData(array $ids, string $fromObject, string $toObject): array\n {\n $associationData = [];\n $idChunks = array_chunk($ids, self::ASSOCIATIONS_BATCH_SIZE_LIMIT);\n\n foreach ($idChunks as $idChunk) {\n try {\n $batchInput = new \\HubSpot\\Client\\Crm\\Associations\\Model\\BatchInputPublicObjectId();\n $batchInput->setInputs(array_map(function ($id) {\n $publicObjectId = new \\HubSpot\\Client\\Crm\\Associations\\Model\\PublicObjectId();\n $publicObjectId->setId($id);\n\n return $publicObjectId;\n }, $idChunk));\n\n $associatedObjectsData = $this\n ->getNewInstance()\n ->crm()\n ->associations()\n ->batchApi()\n ->read($fromObject, $toObject, $batchInput);\n\n if ($associatedObjectsData instanceof \\HubSpot\\Client\\Crm\\Associations\\Model\\BatchResponsePublicAssociationMulti) {\n foreach ($associatedObjectsData->getResults() as $association) {\n $from = $association->getFrom()->getId();\n $toAssociations = $association->getTo();\n\n if (! empty($toAssociations)) {\n $associationData[$from] = array_map(function ($item) {\n return $item->getId();\n }, $toAssociations);\n }\n }\n }\n// } catch (RateLimitException $e) {\n// throw $e;\n } catch (\\Exception $e) {\n $this->log->error('[Hubspot] Failed to fetch associations', [\n 'from_object' => $fromObject,\n 'to_object' => $toObject,\n 'reason' => $e->getMessage(),\n ]);\n }\n }\n\n return $associationData;\n }\n\n /**\n * @throws \\Exception\n */\n private function getNoteAssociationType(NoteObject $noteObject): string\n {\n return match($noteObject) {\n NoteObject::Opportunity => 'note_to_deal',\n NoteObject::Lead, NoteObject::Contact => 'note_to_contact', // or 'note_to_lead' if your portal supports it\n NoteObject::Account => 'note_to_company',\n NoteObject::Call, NoteObject::Event => throw new \\Exception('Not supported'),\n };\n }\n\n /**\n * @throws \\Exception\n */\n private function getNoteObject(NoteObject $noteObject): string\n {\n return match($noteObject) {\n NoteObject::Opportunity => 'deal',\n NoteObject::Lead, NoteObject::Contact => 'contact',\n NoteObject::Account => 'company',\n NoteObject::Call, NoteObject::Event => throw new \\Exception('Not supported'),\n };\n }\n\n public function addAssociations(string $objectType, string $associationType, array $payload): Response\n {\n $endpoint = \"/crm/v4/associations/$objectType/$associationType/batch/create\";\n\n return $this->makeRequest($endpoint, 'POST', $payload);\n }\n\n public function removeAssociations(string $objectType, string $associationType, array $payload): Response\n {\n $endpoint = \"/crm/v4/associations/$objectType/$associationType/batch/archive\";\n\n return $this->makeRequest($endpoint, 'POST', $payload);\n }\n}","depth":4,"on_screen":true,"value":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Services\\Crm\\Hubspot;\n\nuse HubSpot\\Client\\Crm\\Deals\\ApiException as DealApiException;\nuse HubSpot\\Client\\Crm\\Contacts\\ApiException as ContactApiException;\nuse HubSpot\\Client\\Crm\\Companies\\ApiException as CompanyApiException;\nuse HubSpot\\Client\\Crm\\Contacts\\Model\\SimplePublicObjectWithAssociations as ContactsWithAssociations;\nuse HubSpot\\Client\\Crm\\Companies\\Model\\SimplePublicObjectWithAssociations as CompaniesWithAssociations;\nuse HubSpot\\Client\\Crm\\Deals\\Model\\SimplePublicObjectWithAssociations as DealWithAssociations;\nuse HubSpot\\Client\\Crm\\Objects\\Model\\SimplePublicObjectInput;\nuse HubSpot\\Client\\Crm\\Objects\\Model\\SimplePublicObjectWithAssociations as ObjectWithAssociations;\nuse HubSpot\\Client\\Crm\\Pipelines\\Model\\Error;\nuse HubSpot\\Client\\Crm\\Pipelines\\Model\\PipelineStage;\nuse HubSpot\\Client\\Crm\\Properties\\Model\\Property;\nuse HubSpot\\Discovery\\Discovery;\nuse Jiminny\\Exceptions\\CrmException;\nuse Jiminny\\Exceptions\\RateLimitException;\nuse Jiminny\\Exceptions\\SocialAccountTokenInvalidException;\nuse Jiminny\\Jobs\\Crm\\NoteObject;\nuse Jiminny\\Models\\Crm\\Field;\nuse Jiminny\\Services\\Crm\\BaseClient;\nuse Jiminny\\Services\\Crm\\Hubspot\\DTO\\Response\\Owner;\nuse Jiminny\\Services\\SocialAccountService;\nuse SevenShores\\Hubspot\\Exceptions\\BadRequest;\nuse SevenShores\\Hubspot\\Exceptions\\HubspotException;\nuse SevenShores\\Hubspot\\Factory;\nuse SevenShores\\Hubspot\\Http\\Response;\nuse Jiminny\\Services\\Crm\\Hubspot\\Pagination\\HubspotPaginationService;\nuse Illuminate\\Support\\Facades\\Redis;\nuse Throwable;\n\n/**\n * @phpstan-type CrmFieldOption array{id:string, label:string, value?:string}\n */\nclass Client extends BaseClient implements HubspotClientInterface\n{\n public const string MIN_API_VERSION = '2';\n\n public const string BASE_URL = 'https://api.hubapi.com';\n\n public const int ASSOCIATIONS_BATCH_SIZE_LIMIT = 1000;\n\n private HubspotPaginationService $paginationService;\n private HubspotTokenManager $tokenManager;\n\n public function __construct(\n SocialAccountService $socialAccountService,\n HubspotPaginationService $paginationService,\n HubspotTokenManager $tokenManager\n ) {\n parent::__construct($socialAccountService);\n $this->paginationService = $paginationService;\n $this->tokenManager = $tokenManager;\n\n $this->setBaseUrl(self::BASE_URL);\n $this->setVersion(self::MIN_API_VERSION);\n }\n\n /**\n * Reacts to a rate limits (429) from HubSpot by translating it\n * into a RateLimitException carrying retry_after.\n *\n * Wrap any outbound HubSpot call (SDK or raw HTTP) like:\n *\n * $this->executeRequest(fn () => $this->getNewInstance()->crm()->...);\n *\n * @template T\n * @param callable(): T $apiCall\n * @return T\n *\n * @throws RateLimitException\n */\n private function executeRequest(callable $apiCall)\n {\n $cacheKey = $this->getRateLimitCacheKey();\n\n $cachedRetryAfter = Redis::get($cacheKey);\n if (is_string($cachedRetryAfter) && is_numeric($cachedRetryAfter)) {\n throw new RateLimitException(\n 'Hubspot rate limit (cached circuit-breaker)',\n (int) $cachedRetryAfter,\n );\n }\n\n try {\n return $apiCall();\n } catch (Throwable $e) {\n if ($this->isHubspotRateLimit($e)) {\n $retryAfter = $this->parseRetryAfter($e);\n\n Redis::setex($cacheKey, $retryAfter, (string) $retryAfter);\n\n $this->log->warning('[Hubspot] Received 429 from API', [\n 'team_id' => $this->config->team_id,\n 'config_id' => $this->config->getId(),\n 'retry_after' => $retryAfter,\n 'reason' => $e->getMessage(),\n ]);\n\n throw new RateLimitException('Hubspot returned 429', $retryAfter, $e);\n }\n\n throw $e;\n }\n }\n\n private function getRateLimitCacheKey(): string\n {\n return sprintf('hubspot:ratelimit:portal:%d', $this->config->getId());\n }\n\n public function isHubspotRateLimit(Throwable $e): bool\n {\n if ($e instanceof BadRequest\n || $e instanceof DealApiException\n || $e instanceof ContactApiException\n || $e instanceof CompanyApiException\n || $e instanceof \\GuzzleHttp\\Exception\\RequestException\n ) {\n return (int) $e->getCode() === 429;\n }\n\n return false;\n }\n\n public function parseRetryAfter(Throwable $e): int\n {\n if (method_exists($e, 'getResponseHeaders')) {\n $headers = $e->getResponseHeaders() ?: [];\n $value = $headers['Retry-After'] ?? $headers['retry-after'] ?? null;\n if (is_array($value)) {\n $value = $value[0] ?? null;\n }\n if (is_numeric($value)) {\n return (int) $value;\n }\n }\n\n $message = strtolower($e->getMessage()($e));\n\n if (str_contains($message, 'daily')) {\n return 600;\n }\n if (str_contains($message, 'ten secondly')) {\n return 10;\n }\n if (str_contains($message, 'secondly')) {\n return 1;\n }\n\n $this->log->warning('[Hubspot] No retry-after header or known message, using default', [\n 'exception_class' => get_class($e),\n 'message' => $message,\n ]);\n\n return 10;\n }\n\n public function parseMessage(Throwable $e): string\n {\n if (! method_exists($e, 'getResponseBody')) {\n return '';\n }\n\n $body = $e->getResponseBody();\n if (is_string($body)) {\n $body = json_decode($body, true) ?? [];\n }\n\n if (! is_array($body)) {\n return '';\n }\n\n return (string) ($body['message'] ?? '');\n }\n\n public function getMinimumApiVersion(): string\n {\n return self::MIN_API_VERSION;\n }\n\n public function getInstance(): Factory\n {\n return new Factory([\n 'key' => $this->accessToken,\n 'oauth2' => true,\n 'base_url' => $this->baseUrl,\n ]);\n }\n\n public function getNewInstance(): Discovery\n {\n return \\HubSpot\\Factory::createWithAccessToken($this->accessToken);\n }\n\n /**\n * Secondly and daily limits for Hubspot API\n *\n * Product Tier: Free & Starter | Professional & Enterprise | API add-on (any tier)\n * Burst: 100/10 seconds | 150/10 seconds | 200/10 seconds\n * Daily: 250,000 | 500,000 | 1,000,000\n *\n * Official documentation states: The search endpoints are rate limited to five requests per second.\n * Since with 5 RPS were still hitting secondly rate limits we lowered it to 4\n */\n public function getPaginatedData(array $payload, string $type, int $offset = 0): array\n {\n $total = 0;\n $lastId = null;\n $rows = [];\n foreach ($this->getPaginatedDataGenerator($payload, $type, $offset, $total, $lastId) as $row) {\n $rows[] = $row;\n }\n\n return ['results' => $rows, 'total' => $total, 'last_record' => $lastId];\n }\n\n /**\n * @throws HubspotException\n * @throws SocialAccountTokenInvalidException\n * @throws BadRequest\n */\n public function getPaginatedDataGenerator(\n array $payload,\n string $type,\n int $offset = 0,\n int &$total = 0,\n ?string &$lastRecordId = null\n ): \\Generator {\n return $this->paginationService->getPaginatedDataGenerator(\n $this,\n $payload,\n $type,\n $offset,\n $total,\n $lastRecordId\n );\n }\n\n /**\n * Execute a search request against HubSpot CRM objects with rate limiting.\n *\n * @param string $objectType The object type ('deals', 'companies', 'contacts', 'calls')\n * @param array<string, mixed> $payload The search payload with filters, sorts, properties, etc.\n * @return array The search response with 'results', 'total', 'paging' keys\n * @throws RateLimitException When rate limit is hit\n * @throws HubspotException On API errors\n */\n public function search(string $objectType, array $payload): array\n {\n $endpoint = self::BASE_URL . \"/crm/v3/objects/{$objectType}/search\";\n\n return $this->executeRequest(function () use ($endpoint, $payload) {\n $response = $this->getInstance()->getClient()->request('POST', $endpoint, ['json' => $payload]);\n\n return $response->toArray();\n });\n }\n\n /**\n * @throws DealApiException\n * @throws CrmException\n */\n public function getOpportunityById(string $crmId, array $fields): array\n {\n try {\n $deal = $this->getNewInstance()->crm()->deals()->basicApi()->getById(\n $crmId,\n implode(',', $fields),\n 'companies,contacts'\n );\n } catch (DealApiException $e) {\n $this->log->info('[Hubspot] Failed to fetch opportunity', [\n 'crm_id' => $crmId,\n 'reason' => $e->getMessage(),\n ]);\n\n throw $e;\n }\n\n if (! $deal instanceof DealWithAssociations) {\n throw new CrmException('Deal not found');\n }\n\n return [\n 'id' => $deal->getId(),\n 'properties' => $deal->getProperties(),\n 'associations' => $deal->getAssociations(),\n ];\n }\n\n /**\n * Generic batch read method for HubSpot objects\n *\n * @param string $objectType The object type ('deals', 'companies', 'contacts')\n * @param array<string> $crmIds Array of HubSpot object IDs (max 100)\n * @param array<string> $fields Array of property names to fetch\n *\n * @return array<string, array> Array keyed by CRM ID with object data\n */\n private function batchReadObjects(string $objectType, array $crmIds, array $fields): array\n {\n if (empty($crmIds)) {\n return [];\n }\n\n $this->validateBatchSize($objectType, $crmIds);\n $this->ensureValidToken();\n\n try {\n $batchConfig = $this->createBatchConfiguration($objectType);\n $batchReadRequest = $this->prepareBatchRequest($batchConfig, $crmIds, $fields);\n $response = $batchConfig['api']->read($batchReadRequest);\n\n $this->validateApiResponse($response, $objectType);\n\n $results = $this->processApiResults($response);\n $this->logBatchResults($objectType, $crmIds, $results);\n\n return $results;\n } catch (\\Throwable $e) {\n $this->handleBatchError($e, $objectType, $crmIds);\n }\n }\n\n private function validateBatchSize(string $objectType, array $crmIds): void\n {\n if (count($crmIds) > 100) {\n throw new \\InvalidArgumentException(\"Batch size cannot exceed 100 {$objectType}\");\n }\n }\n\n private function createBatchConfiguration(string $objectType): array\n {\n $configurations = [\n 'deals' => [\n 'batchReadRequest' => new \\HubSpot\\Client\\Crm\\Deals\\Model\\BatchReadInputSimplePublicObjectId(),\n 'inputClass' => \\HubSpot\\Client\\Crm\\Deals\\Model\\SimplePublicObjectId::class,\n 'api' => $this->getNewInstance()->crm()->deals()->batchApi(),\n ],\n 'companies' => [\n 'batchReadRequest' => new \\HubSpot\\Client\\Crm\\Companies\\Model\\BatchReadInputSimplePublicObjectId(),\n 'inputClass' => \\HubSpot\\Client\\Crm\\Companies\\Model\\SimplePublicObjectId::class,\n 'api' => $this->getNewInstance()->crm()->companies()->batchApi(),\n ],\n 'contacts' => [\n 'batchReadRequest' => new \\HubSpot\\Client\\Crm\\Contacts\\Model\\BatchReadInputSimplePublicObjectId(),\n 'inputClass' => \\HubSpot\\Client\\Crm\\Contacts\\Model\\SimplePublicObjectId::class,\n 'api' => $this->getNewInstance()->crm()->contacts()->batchApi(),\n ],\n ];\n\n if (! isset($configurations[$objectType])) {\n throw new \\InvalidArgumentException(\"Unsupported object type: {$objectType}\");\n }\n\n return $configurations[$objectType];\n }\n\n private function prepareBatchRequest(array $batchConfig, array $crmIds, array $fields): object\n {\n $batchReadRequest = $batchConfig['batchReadRequest'];\n $inputClass = $batchConfig['inputClass'];\n\n $inputs = array_map(function ($crmId) use ($inputClass) {\n $input = new $inputClass();\n $input->setId($crmId);\n\n return $input;\n }, $crmIds);\n\n $batchReadRequest->setInputs($inputs);\n $batchReadRequest->setProperties($fields);\n\n return $batchReadRequest;\n }\n\n private function validateApiResponse($response, string $objectType): void\n {\n if (! $response) {\n throw new CrmException(\"HubSpot API returned null response for {$objectType} batch read\");\n }\n }\n\n private function processApiResults($response): array\n {\n $results = [];\n $responseResults = $response->getResults();\n\n if ($responseResults) {\n foreach ($responseResults as $object) {\n if ($object && $object->getId()) {\n $results[$object->getId()] = [\n 'id' => $object->getId(),\n 'properties' => $object->getProperties() ?: [],\n ];\n }\n }\n }\n\n return $results;\n }\n\n private function logBatchResults(string $objectType, array $crmIds, array $results): void\n {\n $this->log->info(\"[HubSpot] Batch fetched {$objectType}\", [\n 'requested_count' => count($crmIds),\n 'returned_count' => count($results),\n 'crm_ids' => $crmIds,\n ]);\n }\n\n private function handleBatchError(\\Throwable $e, string $objectType, array $crmIds): void\n {\n $errorMessage = $e->getMessage() ?: 'Unknown error';\n $errorTrace = $e->getTraceAsString() ?: 'No trace available';\n\n $this->log->error(\"[HubSpot] Failed to batch fetch {$objectType}\", [\n 'crm_ids' => $crmIds,\n 'error' => $errorMessage,\n 'trace' => $errorTrace,\n ]);\n\n throw new CrmException(\"Failed to batch fetch {$objectType}: \" . $errorMessage);\n }\n\n /**\n * Batch read multiple opportunities by their CRM IDs\n *\n * @param array<string> $crmIds Array of HubSpot deal IDs (max 100)\n * @param array<string> $fields Array of property names to fetch\n *\n * @return array<string, array> Array keyed by CRM ID with opportunity data\n */\n public function getOpportunitiesByIds(array $crmIds, array $fields): array\n {\n return $this->batchReadObjects('deals', $crmIds, $fields);\n }\n\n /**\n * Batch read multiple companies by their CRM IDs\n *\n * @param array<string> $crmIds Array of HubSpot company IDs (max 100)\n * @param array<string> $fields Array of property names to fetch\n *\n * @return array<string, array> Array keyed by CRM ID with company data\n */\n public function getCompaniesByIds(array $crmIds, array $fields): array\n {\n return $this->batchReadObjects('companies', $crmIds, $fields);\n }\n\n /**\n * Batch read multiple contacts by their CRM IDs\n *\n * @param array<string> $crmIds Array of HubSpot contact IDs (max 100)\n * @param array<string> $fields Array of property names to fetch\n *\n * @return array<string, array> Array keyed by CRM ID with contact data\n */\n public function getContactsByIds(array $crmIds, array $fields): array\n {\n return $this->batchReadObjects('contacts', $crmIds, $fields);\n }\n\n /**\n * @throws CompanyApiException\n * @throws CrmException\n */\n public function getAccountById(string $crmId, array $fields): array\n {\n try {\n $company = $this->getNewInstance()->crm()->companies()->basicApi()->getById(\n $crmId,\n implode(',', $fields),\n );\n } catch (CompanyApiException $e) {\n $this->log->info('[Hubspot] Failed to fetch account', [\n 'crm_id' => $crmId,\n 'reason' => $e->getMessage(),\n ]);\n\n throw $e;\n }\n\n if (! $company instanceof CompaniesWithAssociations) {\n throw new CrmException('Account not found');\n }\n\n return [\n 'id' => $company->getId(),\n 'properties' => $company->getProperties(),\n ];\n }\n\n /**\n * @throws ContactApiException\n * @throws CrmException\n */\n public function getContactById(string $crmId, array $fields): array\n {\n try {\n $contact = $this->getNewInstance()->crm()->contacts()->basicApi()->getById(\n $crmId,\n implode(',', $fields)\n );\n } catch (ContactApiException $e) {\n $this->log->info('[Hubspot] Failed to fetch contact', [\n 'crm_id' => $crmId,\n 'reason' => $e->getMessage(),\n ]);\n\n throw $e;\n }\n\n if (! $contact instanceof ContactsWithAssociations) {\n throw new CrmException('Contact not found');\n }\n\n return [\n 'id' => $contact->getId(),\n 'properties' => $contact->getProperties(),\n ];\n }\n\n /**\n * This is email search request that Hubspot offers as GET (more generous quota)\n */\n public function getContactByEmail(string $email, array $fields = []): array\n {\n try {\n $contact = $this->getNewInstance()->crm()->contacts()->basicApi()->getById(\n $email,\n implode(',', $fields),\n null,\n false,\n 'email'\n );\n\n return [\n 'id' => $contact->getId(),\n 'properties' => $contact->getProperties(),\n ];\n } catch (ContactApiException $e) {\n $this->log->info('[Hubspot] Failed to fetch contact', [\n 'email' => $email,\n 'reason' => $e->getMessage(),\n ]);\n\n return [];\n }\n }\n\n /**\n * @throws CrmException\n */\n public function fetchProperty(string $objectType, string $propertyId): Property\n {\n $result = $this->getNewInstance()->crm()->properties()->coreApi()->getByName($objectType, $propertyId);\n\n if (! $result instanceof Property) {\n $this->log->error('[Hubspot] Failed to fetch property', [\n 'object_type' => $objectType,\n 'property_id' => $propertyId,\n 'reason' => $result->getMessage(),\n ]);\n\n throw new CrmException('Failed to fetch property');\n }\n\n return $result;\n }\n\n /**\n * @return array<CrmFieldOption>\n */\n public function fetchPropertyOptions(string $objectType, string $propertyId): array\n {\n /** @var array<CrmFieldOption> */\n return $this->fetchProperty($objectType, $propertyId)->getOptions();\n }\n\n /**\n * @return array<array{id:string, label:string, deleted:bool}>\n */\n public function fetchCallDispositions(): array\n {\n /** @var Response $response */\n $response = $this->getInstance()->engagements()->getCallDispositions();\n\n /**\n * @var array<array{\n * id:string,\n * label:string,\n * deleted: bool\n * }>\n */\n return $response->toArray();\n }\n\n /**\n * @return array<CrmFieldOption>\n */\n public function fetchOpportunityPipelineStages(): array\n {\n $stages = [];\n $apiResponse = $this->getNewInstance()->crm()->pipelines()->pipelinesApi()->getAll('deals');\n\n if ($apiResponse instanceof Error) {\n $this->log->error('[Hubspot] Failed to fetch opportunity pipelines', [\n 'reason' => $apiResponse->getMessage(),\n ]);\n\n return [];\n }\n\n foreach ($apiResponse->getResults() as $pipeline) {\n $pipelineStages = array_map(\n static function (PipelineStage $stage) {\n return [\n 'id' => $stage->getId(),\n 'label' => $stage->getLabel(),\n ];\n },\n $pipeline->getStages()\n );\n\n $stages = array_merge($stages, $pipelineStages);\n }\n\n return $stages;\n }\n\n public function fetchOpportunityPipelines(): array\n {\n $pipelines = [];\n\n try {\n $apiResponse = $this->makeRequest('/crm/v3/pipelines/deals');\n } catch (\\Exception $e) {\n $this->log->info('[Hubspot] Failed to fetch opportunity pipelines', [\n 'reason' => $e->getMessage(),\n ]);\n\n return [];\n }\n\n $response = $apiResponse->toArray();\n\n foreach ($response['results'] as $pipeline) {\n $pipelines[] = [\n 'id' => $pipeline['id'],\n 'label' => $pipeline['label'],\n ];\n }\n\n return $pipelines;\n }\n\n /**\n * @return array<CrmFieldOption>\n */\n public function fetchMeetingOutcomeFieldOptions(Field $field): array\n {\n return $field->getCrmProviderId() === 'meetingOutcome'\n ? $this->fetchMeetingOutcomeTypes()\n : $this->fetchCallActivityTypes();\n }\n\n public function fetchMeetingOutcomeTypes(): array\n {\n return $this->extractMeetingTypeOptions(\n 'https://api.hubapi.com/crm/v3/properties/meeting/hs_meeting_outcome'\n );\n }\n\n public function fetchCallActivityTypes(): array\n {\n return $this->extractMeetingTypeOptions(\n 'https://api.hubapi.com/crm/v3/properties/call/hs_activity_type'\n );\n }\n\n private function extractMeetingTypeOptions(string $endpoint): array\n {\n /** @var Response $response */\n $response = $this->getInstance()\n ->getClient()\n ->request('GET', $endpoint);\n\n /**\n * @var array<array{\n * value: string,\n * label: string,\n * displayOrder: int\n * }> $optionData\n */\n $optionData = $response->toArray()['options'] ?? [];\n\n $options = [];\n foreach ($optionData as $item) {\n $options[] = [\n 'id' => $item['value'],\n 'value' => $item['value'],\n 'label' => $item['label'],\n 'display_order' => $item['displayOrder'],\n ];\n }\n\n return $options;\n }\n\n /**\n * @return array<CrmFieldOption>\n */\n public function fetchDispositionFieldOptions(): array\n {\n $options = [];\n\n $dispositions = $this->fetchCallDispositions();\n\n foreach ($dispositions as $disposition) {\n if ($disposition['deleted'] !== false) {\n continue;\n }\n\n $option['value'] = $disposition['id'];\n $option['id'] = $disposition['id'];\n $option['label'] = $disposition['label'];\n\n $options[] = $option;\n }\n\n return $options;\n }\n\n /**\n * @return array<CrmFieldOption>\n */\n public function fetchOpportunityFieldOptions(Field $field): array\n {\n if ($field->isStageField()) {\n return $this->fetchOpportunityPipelineStages();\n }\n\n if ($field->isPipelineField()) {\n return $this->fetchOpportunityPipelines();\n }\n\n return $this->fetchPropertyOptions('deals', $field->getCrmProviderId());\n }\n\n /**\n * @throws BadRequest\n * @throws HubspotException\n */\n public function makeRequest(string $endpoint, $method = 'GET', $payload = [], ?string $queryString = null)\n {\n $endpoint = self::BASE_URL . $endpoint;\n\n if ($method === 'GET') {\n return $this->getInstance()->getClient()?->request(\n method: $method,\n endpoint: $endpoint,\n query_string: $queryString\n );\n } else {\n return $this->getInstance()->getClient()->request($method, $endpoint, [\n 'json' => ($payload),\n ]);\n }\n }\n\n /**\n * @throws BadRequest\n * @throws HubspotException\n */\n public function createMeeting(array $payload): Response\n {\n $endpoint = '/crm/v3/objects/meetings';\n\n return $this->makeRequest($endpoint, 'POST', $payload);\n }\n\n /**\n * @throws BadRequest\n * @throws HubspotException\n */\n public function updateMeeting(string $meetingId, array $payload): Response\n {\n $endpoint = '/crm/v3/objects/meetings/' . $meetingId;\n\n return $this->makeRequest($endpoint, 'PATCH', $payload);\n }\n\n /**\n * @throws \\Exception\n */\n public function createNote(\n string $body,\n string $ownerId,\n int $timestamp,\n string $objectId,\n NoteObject $noteObject\n ): ?string {\n try {\n $noteInput = new SimplePublicObjectInput([\n 'properties' => [\n 'hs_note_body' => $body,\n 'hubspot_owner_id' => $ownerId,\n 'hs_timestamp' => $timestamp,\n ],\n ]);\n\n // Create note\n $note = $this->getNewInstance()->crm()->objects()->basicApi()->create('note', $noteInput);\n\n $this->getNewInstance()->crm()->objects()->associationsApi()->create(\n 'note',\n $note->getId(),\n $this->getNoteObject($noteObject),\n $objectId,\n $this->getNoteAssociationType($noteObject),\n );\n\n return $note->getId();\n } catch (\\Exception $e) {\n $this->log->error('[Hubspot] Failed to create note', [\n 'objectId' => $objectId,\n 'noteObject' => $noteObject->getObjectType(),\n 'reason' => $e->getMessage(),\n ]);\n\n \\Sentry::captureException($e);\n }\n\n return null;\n }\n\n public function updateEngagement(string $objectId, array $engagement, array $metadata): void\n {\n $this->getInstance()->engagements()->update($objectId, $engagement, $metadata);\n }\n\n public function getEngagementData(string $engagementId): array\n {\n $engagement = $this->getInstance()->engagements()->get($engagementId);\n\n return $engagement->toArray();\n }\n\n public function createEngagement(array $engagement, array $associations, array $metadata): Response\n {\n return $this->getInstance()\n ->engagements()\n ->create($engagement, $associations, $metadata);\n }\n\n public function isUnauthorizedException(\\Exception $e): bool\n {\n // Check for specific HubSpot API exception types first\n if ($e instanceof BadRequest) {\n // BadRequest can contain 401 status codes\n return $e->getCode() === 401;\n }\n\n // Check for HTTP client exceptions with status codes\n if ($e instanceof \\GuzzleHttp\\Exception\\RequestException && $e->hasResponse()) {\n $response = $e->getResponse();\n if ($response !== null) {\n return $response->getStatusCode() === 401;\n }\n }\n\n // Check for Guzzle HTTP exceptions\n if ($e instanceof \\GuzzleHttp\\Exception\\ClientException) {\n return $e->getCode() === 401;\n }\n\n // Fallback to string matching as last resort, but be more specific\n $message = strtolower($e->getMessage());\n\n return str_contains($message, '401 unauthorized') ||\n str_contains($message, 'http 401') ||\n str_contains($message, 'status code 401') ||\n (preg_match('/\\b401\\b/', $message) && str_contains($message, 'unauthorized'));\n }\n\n /**\n * Validates and refreshes the access token if needed before API requests.\n * This ensures long-running processes don't fail due to token expiration.\n *\n * @throws SocialAccountTokenInvalidException\n */\n public function ensureValidToken(): void\n {\n if ($this->oauthAccount === null) {\n return;\n }\n\n $newToken = $this->tokenManager->ensureValidToken($this->oauthAccount);\n if ($newToken !== null) {\n $this->accessToken = $newToken;\n }\n }\n\n public function getConfig()\n {\n return $this->config;\n }\n\n // returns only active (archived=false)\n public function getOwners(): array\n {\n return $this->getNewInstance()->crm()->owners()->getAll();\n }\n\n /**\n * @param bool $archived\n *\n * @return array<Owner>|[]\n */\n public function getOwnersArchived(bool $archived = true): array\n {\n $endpoint = '/crm/v3/owners';\n $queryParams = [\n 'archived' => $archived ? 'true' : 'false',\n ];\n $queryString = http_build_query($queryParams);\n\n $owners = [];\n\n try {\n $response = $this->makeRequest(endpoint: $endpoint, queryString: $queryString);\n $responseData = $response?->toArray();\n\n foreach ($responseData['results'] as $result) {\n try {\n $owners[] = Owner::create($result);\n } catch (Throwable $e) {\n $this->log->error('[HubSpot] Failed to process owner data', [\n 'result' => $result,\n 'error' => $e->getMessage(),\n ]);\n\n continue;\n }\n }\n } catch (Throwable $e) {\n $this->log->error('HubSpot] Failed to fetch owners', [\n 'archived' => $archived,\n 'error' => $e->getMessage(),\n ]);\n\n return [];\n }\n\n return $owners;\n }\n\n public function getMeeting(string $engagementId): ObjectWithAssociations\n {\n return $this->getNewInstance()->crm()->objects()->basicApi()\n ->getById('meeting', $engagementId, null, 'contact,company,deal');\n }\n\n public function deleteEngagement(string $engagementId): void\n {\n $this->getInstance()->engagements()->delete((int) $engagementId);\n }\n\n public function getAssociationsData(array $ids, string $fromObject, string $toObject): array\n {\n $associationData = [];\n $idChunks = array_chunk($ids, self::ASSOCIATIONS_BATCH_SIZE_LIMIT);\n\n foreach ($idChunks as $idChunk) {\n try {\n $batchInput = new \\HubSpot\\Client\\Crm\\Associations\\Model\\BatchInputPublicObjectId();\n $batchInput->setInputs(array_map(function ($id) {\n $publicObjectId = new \\HubSpot\\Client\\Crm\\Associations\\Model\\PublicObjectId();\n $publicObjectId->setId($id);\n\n return $publicObjectId;\n }, $idChunk));\n\n $associatedObjectsData = $this\n ->getNewInstance()\n ->crm()\n ->associations()\n ->batchApi()\n ->read($fromObject, $toObject, $batchInput);\n\n if ($associatedObjectsData instanceof \\HubSpot\\Client\\Crm\\Associations\\Model\\BatchResponsePublicAssociationMulti) {\n foreach ($associatedObjectsData->getResults() as $association) {\n $from = $association->getFrom()->getId();\n $toAssociations = $association->getTo();\n\n if (! empty($toAssociations)) {\n $associationData[$from] = array_map(function ($item) {\n return $item->getId();\n }, $toAssociations);\n }\n }\n }\n// } catch (RateLimitException $e) {\n// throw $e;\n } catch (\\Exception $e) {\n $this->log->error('[Hubspot] Failed to fetch associations', [\n 'from_object' => $fromObject,\n 'to_object' => $toObject,\n 'reason' => $e->getMessage(),\n ]);\n }\n }\n\n return $associationData;\n }\n\n /**\n * @throws \\Exception\n */\n private function getNoteAssociationType(NoteObject $noteObject): string\n {\n return match($noteObject) {\n NoteObject::Opportunity => 'note_to_deal',\n NoteObject::Lead, NoteObject::Contact => 'note_to_contact', // or 'note_to_lead' if your portal supports it\n NoteObject::Account => 'note_to_company',\n NoteObject::Call, NoteObject::Event => throw new \\Exception('Not supported'),\n };\n }\n\n /**\n * @throws \\Exception\n */\n private function getNoteObject(NoteObject $noteObject): string\n {\n return match($noteObject) {\n NoteObject::Opportunity => 'deal',\n NoteObject::Lead, NoteObject::Contact => 'contact',\n NoteObject::Account => 'company',\n NoteObject::Call, NoteObject::Event => throw new \\Exception('Not supported'),\n };\n }\n\n public function addAssociations(string $objectType, string $associationType, array $payload): Response\n {\n $endpoint = \"/crm/v4/associations/$objectType/$associationType/batch/create\";\n\n return $this->makeRequest($endpoint, 'POST', $payload);\n }\n\n public function removeAssociations(string $objectType, string $associationType, array $payload): Response\n {\n $endpoint = \"/crm/v4/associations/$objectType/$associationType/batch/archive\";\n\n return $this->makeRequest($endpoint, 'POST', $payload);\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":true,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Show Replace Field","depth":4,"bounds":{"left":0.5575133,"top":0.08060654,"width":0.008643617,"height":0.01915403},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Search History","depth":3,"bounds":{"left":0.57014626,"top":0.07980846,"width":0.00731383,"height":0.017557861},"on_screen":true,"role_description":"checkbox","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"429","depth":4,"bounds":{"left":0.58111703,"top":0.07980846,"width":0.077792555,"height":0.015961692},"on_screen":true,"value":"429","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"New Line","depth":3,"bounds":{"left":0.66788566,"top":0.07980846,"width":0.00731383,"height":0.017557861},"on_screen":true,"role_description":"checkbox","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Match Case","depth":3,"bounds":{"left":0.67785907,"top":0.07980846,"width":0.00731383,"height":0.017557861},"on_screen":true,"role_description":"checkbox","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Words","depth":3,"bounds":{"left":0.68650264,"top":0.07980846,"width":0.00731383,"height":0.017557861},"on_screen":true,"role_description":"checkbox","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Regex","depth":3,"bounds":{"left":0.69514626,"top":0.07980846,"width":0.00731383,"height":0.017557861},"on_screen":true,"role_description":"checkbox","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Replace History","depth":3,"bounds":{"left":0.27027926,"top":1.0,"width":0.00731383,"height":0.0},"on_screen":false,"role_description":"checkbox","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextField","text":"Replace","depth":4,"on_screen":false,"role_description":"text field","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"New Line","depth":3,"bounds":{"left":0.27027926,"top":1.0,"width":0.00731383,"height":0.0},"on_screen":false,"role_description":"checkbox","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Preserve case","depth":3,"bounds":{"left":0.27027926,"top":1.0,"width":0.00731383,"height":0.0},"on_screen":false,"role_description":"checkbox","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"1/4","depth":4,"bounds":{"left":0.7087766,"top":0.079010375,"width":0.025598405,"height":0.017557861},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Occurrence","depth":4,"bounds":{"left":0.734375,"top":0.07821229,"width":0.008643617,"height":0.01915403},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Next Occurrence","depth":4,"bounds":{"left":0.7430186,"top":0.07821229,"width":0.008643617,"height":0.01915403},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Filter Search Results","depth":4,"bounds":{"left":0.75166225,"top":0.07821229,"width":0.008643617,"height":0.01915403},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Open in Window, Multiple Cursors","depth":4,"bounds":{"left":0.7603058,"top":0.07821229,"width":0.008643617,"height":0.01915403},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Click to highlight","depth":4,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close","depth":4,"bounds":{"left":0.97539896,"top":0.07821229,"width":0.008643617,"height":0.01915403},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.042220745,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"54","depth":4,"bounds":{"left":0.96210104,"top":0.10933759,"width":0.010305851,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"bounds":{"left":0.9740692,"top":0.10774142,"width":0.00731383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Next Highlighted Error","depth":4,"bounds":{"left":0.98138297,"top":0.10774142,"width":0.006981383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"[2026-05-11 11:08:45] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"43b1fb67-9aac-4fc6-9ced-689ecda5c548\",\"trace_id\":\"60028d0e-dcd8-496a-a7ba-3a04b8d646e2\"}\n[2026-05-11 11:08:45] local.INFO: [Commands/AsyncUpdateEsEntities] Starting ES update worker {\"pid\":72650,\"workerId\":\"\",\"target\":\"activities\"} {\"correlation_id\":\"6d49ffdc-2ed7-4eae-a1ee-e25ca95bbea8\",\"trace_id\":\"906573b5-005c-4820-8a32-3b0703ea86dd\"}\n[2026-05-11 11:08:46] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"43b1fb67-9aac-4fc6-9ced-689ecda5c548\",\"trace_id\":\"60028d0e-dcd8-496a-a7ba-3a04b8d646e2\"}\n[2026-05-11 11:09:12] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":615092,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"correlation_id\":\"f33d47cb-76c6-4c27-a641-48cbf69e623d\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:12] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":615092} {\"correlation_id\":\"f33d47cb-76c6-4c27-a641-48cbf69e623d\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:12] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":615092,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"f33d47cb-76c6-4c27-a641-48cbf69e623d\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:12] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":615092,\"participants\":[{\"id\":1004102,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":1004103,\"user_id\":89,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"f33d47cb-76c6-4c27-a641-48cbf69e623d\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:12] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f33d47cb-76c6-4c27-a641-48cbf69e623d\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:12] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f33d47cb-76c6-4c27-a641-48cbf69e623d\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:12] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"f33d47cb-76c6-4c27-a641-48cbf69e623d\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:12] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"f33d47cb-76c6-4c27-a641-48cbf69e623d\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:12] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"f33d47cb-76c6-4c27-a641-48cbf69e623d\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:13] local.INFO: [Hubspot] Failed to fetch contact {\"email\":\"nikolay.nikolov@jiminny.com\",\"reason\":\"[404] Client error: `GET https://api.hubapi.com/crm/v3/objects/contacts/nikolay.nikolov%40jiminny.com?properties=email%2Cfirstname%2Clastname%2Ccountry%2Cphone%2Cmobilephone%2Cjobtitle%2Chubspot_owner_id%2Cassociatedcompanyid%2Cphoto&archived=0&idProperty=email` resulted in a `404 Not Found` response\"} {\"correlation_id\":\"f33d47cb-76c6-4c27-a641-48cbf69e623d\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:13] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"f33d47cb-76c6-4c27-a641-48cbf69e623d\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:13] local.WARNING: [Hubspot] No retry-after header or known message, using default {\"exception_class\":\"SevenShores\\\\Hubspot\\\\Exceptions\\\\BadRequest\",\"message\":\"\"} {\"correlation_id\":\"f33d47cb-76c6-4c27-a641-48cbf69e623d\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:13] local.WARNING: [Hubspot] Received 429 from API {\"team_id\":2,\"config_id\":2,\"retry_after\":10,\"message\":\"\",\"reason\":\"Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response:\n{\\\"status\\\":\\\"error\\\",\\\"message\\\":\\\"You have reached your secondly limit.\\\",\\\"errorType\\\":\\\"RATE_LIMIT\\\",\\\"correlationId\\\":\\\"019e16ba-1 (truncated...)\n\"} {\"correlation_id\":\"f33d47cb-76c6-4c27-a641-48cbf69e623d\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:13] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":10,\"delay\":12} {\"correlation_id\":\"f33d47cb-76c6-4c27-a641-48cbf69e623d\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":614436,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"correlation_id\":\"ccafe863-7885-4971-96fb-87ef6dd4adf3\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614436} {\"correlation_id\":\"ccafe863-7885-4971-96fb-87ef6dd4adf3\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614436,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ccafe863-7885-4971-96fb-87ef6dd4adf3\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":614436,\"participants\":[{\"id\":1002751,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":1002752,\"user_id\":89,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"ccafe863-7885-4971-96fb-87ef6dd4adf3\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ccafe863-7885-4971-96fb-87ef6dd4adf3\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ccafe863-7885-4971-96fb-87ef6dd4adf3\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ccafe863-7885-4971-96fb-87ef6dd4adf3\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ccafe863-7885-4971-96fb-87ef6dd4adf3\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"ccafe863-7885-4971-96fb-87ef6dd4adf3\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"ccafe863-7885-4971-96fb-87ef6dd4adf3\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":10,\"delay\":10} {\"correlation_id\":\"ccafe863-7885-4971-96fb-87ef6dd4adf3\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":614382,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"correlation_id\":\"f00a4506-adfe-4fdc-b932-e6d2bc751fde\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614382} {\"correlation_id\":\"f00a4506-adfe-4fdc-b932-e6d2bc751fde\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614382,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"f00a4506-adfe-4fdc-b932-e6d2bc751fde\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":614382,\"participants\":[{\"id\":1002632,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":1002633,\"user_id\":89,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"f00a4506-adfe-4fdc-b932-e6d2bc751fde\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f00a4506-adfe-4fdc-b932-e6d2bc751fde\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f00a4506-adfe-4fdc-b932-e6d2bc751fde\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"f00a4506-adfe-4fdc-b932-e6d2bc751fde\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"f00a4506-adfe-4fdc-b932-e6d2bc751fde\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"f00a4506-adfe-4fdc-b932-e6d2bc751fde\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"f00a4506-adfe-4fdc-b932-e6d2bc751fde\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":10,\"delay\":12} {\"correlation_id\":\"f00a4506-adfe-4fdc-b932-e6d2bc751fde\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":614381,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"correlation_id\":\"36bd73f5-17f9-4f70-8254-2214543c7f8e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614381} {\"correlation_id\":\"36bd73f5-17f9-4f70-8254-2214543c7f8e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614381,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"36bd73f5-17f9-4f70-8254-2214543c7f8e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":614381,\"participants\":[{\"id\":1002630,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":1002631,\"user_id\":89,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"36bd73f5-17f9-4f70-8254-2214543c7f8e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"36bd73f5-17f9-4f70-8254-2214543c7f8e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"36bd73f5-17f9-4f70-8254-2214543c7f8e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"36bd73f5-17f9-4f70-8254-2214543c7f8e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"36bd73f5-17f9-4f70-8254-2214543c7f8e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"36bd73f5-17f9-4f70-8254-2214543c7f8e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"36bd73f5-17f9-4f70-8254-2214543c7f8e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":10,\"delay\":10} {\"correlation_id\":\"36bd73f5-17f9-4f70-8254-2214543c7f8e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":614378,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":6167,\"account_id\":null,\"opportunity_id\":null,\"stage_id\":null}} {\"correlation_id\":\"a4a3a058-ec22-4f04-bb14-a9bff18ce214\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614378} {\"correlation_id\":\"a4a3a058-ec22-4f04-bb14-a9bff18ce214\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614378,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a4a3a058-ec22-4f04-bb14-a9bff18ce214\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":614378,\"participants\":[{\"id\":1002623,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":1002624,\"user_id\":null,\"contact_id\":6167,\"lead_id\":null},{\"id\":1002625,\"user_id\":89,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"a4a3a058-ec22-4f04-bb14-a9bff18ce214\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a4a3a058-ec22-4f04-bb14-a9bff18ce214\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a4a3a058-ec22-4f04-bb14-a9bff18ce214\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"a4a3a058-ec22-4f04-bb14-a9bff18ce214\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"a4a3a058-ec22-4f04-bb14-a9bff18ce214\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"a4a3a058-ec22-4f04-bb14-a9bff18ce214\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"a4a3a058-ec22-4f04-bb14-a9bff18ce214\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":10,\"delay\":12} {\"correlation_id\":\"a4a3a058-ec22-4f04-bb14-a9bff18ce214\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613840,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613840} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613840,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613840,\"participants\":[{\"id\":1001764,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1001765,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":261} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":299} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613840,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613840,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613840} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613840,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613840,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"d86caa21-8980-460b-b2be-88292956cdb3\",\"trace_id\":\"6f80ed90-fa59-444e-a016-33a62019c6a4\"}\n[2026-05-11 11:09:15] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613833,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"ed230e3b-8ded-4591-bfe7-d4ead6f411c1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613833} {\"correlation_id\":\"ed230e3b-8ded-4591-bfe7-d4ead6f411c1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613833,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ed230e3b-8ded-4591-bfe7-d4ead6f411c1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613833,\"participants\":[{\"id\":1001750,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1001751,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"ed230e3b-8ded-4591-bfe7-d4ead6f411c1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"d86caa21-8980-460b-b2be-88292956cdb3\",\"trace_id\":\"6f80ed90-fa59-444e-a016-33a62019c6a4\"}\n[2026-05-11 11:09:15] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"d86caa21-8980-460b-b2be-88292956cdb3\",\"trace_id\":\"6f80ed90-fa59-444e-a016-33a62019c6a4\"}\n[2026-05-11 11:09:15] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ed230e3b-8ded-4591-bfe7-d4ead6f411c1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ed230e3b-8ded-4591-bfe7-d4ead6f411c1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ed230e3b-8ded-4591-bfe7-d4ead6f411c1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ed230e3b-8ded-4591-bfe7-d4ead6f411c1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"ed230e3b-8ded-4591-bfe7-d4ead6f411c1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613833,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"ed230e3b-8ded-4591-bfe7-d4ead6f411c1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613833,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"ed230e3b-8ded-4591-bfe7-d4ead6f411c1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613833} {\"correlation_id\":\"ed230e3b-8ded-4591-bfe7-d4ead6f411c1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613833,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ed230e3b-8ded-4591-bfe7-d4ead6f411c1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613833,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"ed230e3b-8ded-4591-bfe7-d4ead6f411c1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613827,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"d165f8f2-23f6-4f9a-90e7-7b600066818c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613827} {\"correlation_id\":\"d165f8f2-23f6-4f9a-90e7-7b600066818c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613827,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d165f8f2-23f6-4f9a-90e7-7b600066818c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613827,\"participants\":[{\"id\":1001734,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1001735,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"d165f8f2-23f6-4f9a-90e7-7b600066818c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d165f8f2-23f6-4f9a-90e7-7b600066818c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d165f8f2-23f6-4f9a-90e7-7b600066818c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"d165f8f2-23f6-4f9a-90e7-7b600066818c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"d165f8f2-23f6-4f9a-90e7-7b600066818c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"d165f8f2-23f6-4f9a-90e7-7b600066818c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613827,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"d165f8f2-23f6-4f9a-90e7-7b600066818c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613827,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"d165f8f2-23f6-4f9a-90e7-7b600066818c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613827} {\"correlation_id\":\"d165f8f2-23f6-4f9a-90e7-7b600066818c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613827,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d165f8f2-23f6-4f9a-90e7-7b600066818c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613827,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"d165f8f2-23f6-4f9a-90e7-7b600066818c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613826,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"1816f96e-c36b-474a-8f46-bc8c71bb0079\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613826} {\"correlation_id\":\"1816f96e-c36b-474a-8f46-bc8c71bb0079\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613826,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1816f96e-c36b-474a-8f46-bc8c71bb0079\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613826,\"participants\":[{\"id\":1001732,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1001733,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"1816f96e-c36b-474a-8f46-bc8c71bb0079\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1816f96e-c36b-474a-8f46-bc8c71bb0079\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1816f96e-c36b-474a-8f46-bc8c71bb0079\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1816f96e-c36b-474a-8f46-bc8c71bb0079\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1816f96e-c36b-474a-8f46-bc8c71bb0079\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"1816f96e-c36b-474a-8f46-bc8c71bb0079\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613826,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"1816f96e-c36b-474a-8f46-bc8c71bb0079\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613826,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"1816f96e-c36b-474a-8f46-bc8c71bb0079\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613826} {\"correlation_id\":\"1816f96e-c36b-474a-8f46-bc8c71bb0079\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613826,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1816f96e-c36b-474a-8f46-bc8c71bb0079\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613826,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"1816f96e-c36b-474a-8f46-bc8c71bb0079\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613820,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"a2b1cf94-6665-4574-a821-fcd845d290dc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613820} {\"correlation_id\":\"a2b1cf94-6665-4574-a821-fcd845d290dc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613820,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a2b1cf94-6665-4574-a821-fcd845d290dc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613820,\"participants\":[{\"id\":1001721,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1001722,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"a2b1cf94-6665-4574-a821-fcd845d290dc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a2b1cf94-6665-4574-a821-fcd845d290dc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a2b1cf94-6665-4574-a821-fcd845d290dc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"a2b1cf94-6665-4574-a821-fcd845d290dc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"a2b1cf94-6665-4574-a821-fcd845d290dc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"a2b1cf94-6665-4574-a821-fcd845d290dc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613820,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"a2b1cf94-6665-4574-a821-fcd845d290dc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613820,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"a2b1cf94-6665-4574-a821-fcd845d290dc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613820} {\"correlation_id\":\"a2b1cf94-6665-4574-a821-fcd845d290dc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613820,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a2b1cf94-6665-4574-a821-fcd845d290dc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613820,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"a2b1cf94-6665-4574-a821-fcd845d290dc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613818,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"7194ba37-7af3-4aa0-80a3-14b38431fd39\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613818} {\"correlation_id\":\"7194ba37-7af3-4aa0-80a3-14b38431fd39\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613818,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7194ba37-7af3-4aa0-80a3-14b38431fd39\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613818,\"participants\":[{\"id\":1001717,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1001718,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"7194ba37-7af3-4aa0-80a3-14b38431fd39\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7194ba37-7af3-4aa0-80a3-14b38431fd39\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7194ba37-7af3-4aa0-80a3-14b38431fd39\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7194ba37-7af3-4aa0-80a3-14b38431fd39\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"7194ba37-7af3-4aa0-80a3-14b38431fd39\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"7194ba37-7af3-4aa0-80a3-14b38431fd39\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613818,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"7194ba37-7af3-4aa0-80a3-14b38431fd39\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613818,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"7194ba37-7af3-4aa0-80a3-14b38431fd39\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613818} {\"correlation_id\":\"7194ba37-7af3-4aa0-80a3-14b38431fd39\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613818,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7194ba37-7af3-4aa0-80a3-14b38431fd39\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613818,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"7194ba37-7af3-4aa0-80a3-14b38431fd39\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613812,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"1fe899e0-6ad7-4159-b5f9-6f34b32d31d6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613812} {\"correlation_id\":\"1fe899e0-6ad7-4159-b5f9-6f34b32d31d6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613812,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1fe899e0-6ad7-4159-b5f9-6f34b32d31d6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613812,\"participants\":[{\"id\":1001705,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1001706,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"1fe899e0-6ad7-4159-b5f9-6f34b32d31d6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1fe899e0-6ad7-4159-b5f9-6f34b32d31d6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1fe899e0-6ad7-4159-b5f9-6f34b32d31d6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1fe899e0-6ad7-4159-b5f9-6f34b32d31d6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1fe899e0-6ad7-4159-b5f9-6f34b32d31d6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"1fe899e0-6ad7-4159-b5f9-6f34b32d31d6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613812,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"1fe899e0-6ad7-4159-b5f9-6f34b32d31d6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613812,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"1fe899e0-6ad7-4159-b5f9-6f34b32d31d6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613812} {\"correlation_id\":\"1fe899e0-6ad7-4159-b5f9-6f34b32d31d6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613812,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1fe899e0-6ad7-4159-b5f9-6f34b32d31d6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613812,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"1fe899e0-6ad7-4159-b5f9-6f34b32d31d6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613807,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4484,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613807} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613807,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613807,\"participants\":[{\"id\":1001690,\"user_id\":253,\"contact_id\":null,\"lead_id\":null},{\"id\":1001691,\"user_id\":null,\"contact_id\":4484,\"lead_id\":null}]} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613807,\"team_id\":2,\"email\":\"preslava.ivanova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":243,\"contact_id\":4484,\"owner_id\":253} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":243,\"contact_id\":4484} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":243,\"contact_id\":4484,\"opportunity_id\":276} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":1.06,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"6d49ffdc-2ed7-4eae-a1ee-e25ca95bbea8\",\"trace_id\":\"906573b5-005c-4820-8a32-3b0703ea86dd\"}\n[2026-05-11 11:09:17] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"tsvetomir.banovski@gmail.com\"} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613807,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613807} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613807,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613807,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4484,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613806,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34}} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613806} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613806,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613806,\"participants\":[{\"id\":1001688,\"user_id\":253,\"contact_id\":null,\"lead_id\":null},{\"id\":1001689,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null}]} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613806,\"team_id\":2,\"email\":\"preslava.ivanova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":253} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":244,\"contact_id\":4487} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":350} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613806,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613806} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613806,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613806,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613805,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34}} {\"correlation_id\":\"e6a724a6-dc6e-4440-ab48-641336d6ca17\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613805} {\"correlation_id\":\"e6a724a6-dc6e-4440-ab48-641336d6ca17\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613805,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e6a724a6-dc6e-4440-ab48-641336d6ca17\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613805,\"participants\":[{\"id\":1001686,\"user_id\":253,\"contact_id\":null,\"lead_id\":null},{\"id\":1001687,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null}]} {\"correlation_id\":\"e6a724a6-dc6e-4440-ab48-641336d6ca17\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e6a724a6-dc6e-4440-ab48-641336d6ca17\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e6a724a6-dc6e-4440-ab48-641336d6ca17\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"e6a724a6-dc6e-4440-ab48-641336d6ca17\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"e6a724a6-dc6e-4440-ab48-641336d6ca17\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613805,\"team_id\":2,\"email\":\"preslava.ivanova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"e6a724a6-dc6e-4440-ab48-641336d6ca17\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"e6a724a6-dc6e-4440-ab48-641336d6ca17\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613805,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"e6a724a6-dc6e-4440-ab48-641336d6ca17\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613805} {\"correlation_id\":\"e6a724a6-dc6e-4440-ab48-641336d6ca17\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613805,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e6a724a6-dc6e-4440-ab48-641336d6ca17\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613805,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34} {\"correlation_id\":\"e6a724a6-dc6e-4440-ab48-641336d6ca17\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613698,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"67158d25-23dc-4314-8813-caa3c43fa3f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613698} {\"correlation_id\":\"67158d25-23dc-4314-8813-caa3c43fa3f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613698,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"67158d25-23dc-4314-8813-caa3c43fa3f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613698,\"participants\":[{\"id\":1001667,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1001668,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"67158d25-23dc-4314-8813-caa3c43fa3f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"67158d25-23dc-4314-8813-caa3c43fa3f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"67158d25-23dc-4314-8813-caa3c43fa3f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"67158d25-23dc-4314-8813-caa3c43fa3f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"67158d25-23dc-4314-8813-caa3c43fa3f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"67158d25-23dc-4314-8813-caa3c43fa3f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613698,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"67158d25-23dc-4314-8813-caa3c43fa3f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613698,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"67158d25-23dc-4314-8813-caa3c43fa3f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613698} {\"correlation_id\":\"67158d25-23dc-4314-8813-caa3c43fa3f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613698,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"67158d25-23dc-4314-8813-caa3c43fa3f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613698,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"67158d25-23dc-4314-8813-caa3c43fa3f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613697,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"8d2a290e-88e6-494a-91c2-f63f0338f30f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613697} {\"correlation_id\":\"8d2a290e-88e6-494a-91c2-f63f0338f30f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613697,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8d2a290e-88e6-494a-91c2-f63f0338f30f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613697,\"participants\":[{\"id\":1001665,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1001666,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"8d2a290e-88e6-494a-91c2-f63f0338f30f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8d2a290e-88e6-494a-91c2-f63f0338f30f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8d2a290e-88e6-494a-91c2-f63f0338f30f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"8d2a290e-88e6-494a-91c2-f63f0338f30f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"8d2a290e-88e6-494a-91c2-f63f0338f30f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"8d2a290e-88e6-494a-91c2-f63f0338f30f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613697,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"8d2a290e-88e6-494a-91c2-f63f0338f30f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613697,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"8d2a290e-88e6-494a-91c2-f63f0338f30f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613697} {\"correlation_id\":\"8d2a290e-88e6-494a-91c2-f63f0338f30f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613697,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8d2a290e-88e6-494a-91c2-f63f0338f30f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613697,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"8d2a290e-88e6-494a-91c2-f63f0338f30f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613696,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"d1c50e93-0488-4315-a739-f89181b77d87\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613696} {\"correlation_id\":\"d1c50e93-0488-4315-a739-f89181b77d87\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613696,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d1c50e93-0488-4315-a739-f89181b77d87\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613696,\"participants\":[{\"id\":1001663,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1001664,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"d1c50e93-0488-4315-a739-f89181b77d87\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d1c50e93-0488-4315-a739-f89181b77d87\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d1c50e93-0488-4315-a739-f89181b77d87\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"d1c50e93-0488-4315-a739-f89181b77d87\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"d1c50e93-0488-4315-a739-f89181b77d87\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"d1c50e93-0488-4315-a739-f89181b77d87\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613696,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"d1c50e93-0488-4315-a739-f89181b77d87\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613696,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"d1c50e93-0488-4315-a739-f89181b77d87\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613696} {\"correlation_id\":\"d1c50e93-0488-4315-a739-f89181b77d87\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613696,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d1c50e93-0488-4315-a739-f89181b77d87\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613696,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"d1c50e93-0488-4315-a739-f89181b77d87\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613695,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"6dbd1e2c-b89e-47b6-9c2f-d9d7a56b5383\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613695} {\"correlation_id\":\"6dbd1e2c-b89e-47b6-9c2f-d9d7a56b5383\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613695,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"6dbd1e2c-b89e-47b6-9c2f-d9d7a56b5383\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613695,\"participants\":[{\"id\":1001661,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1001662,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"6dbd1e2c-b89e-47b6-9c2f-d9d7a56b5383\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"6dbd1e2c-b89e-47b6-9c2f-d9d7a56b5383\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"6dbd1e2c-b89e-47b6-9c2f-d9d7a56b5383\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"6dbd1e2c-b89e-47b6-9c2f-d9d7a56b5383\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"6dbd1e2c-b89e-47b6-9c2f-d9d7a56b5383\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"6dbd1e2c-b89e-47b6-9c2f-d9d7a56b5383\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613695,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"6dbd1e2c-b89e-47b6-9c2f-d9d7a56b5383\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613695,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"6dbd1e2c-b89e-47b6-9c2f-d9d7a56b5383\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613695} {\"correlation_id\":\"6dbd1e2c-b89e-47b6-9c2f-d9d7a56b5383\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613695,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"6dbd1e2c-b89e-47b6-9c2f-d9d7a56b5383\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613695,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"6dbd1e2c-b89e-47b6-9c2f-d9d7a56b5383\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613694,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"cd14d297-e2e1-425f-b745-361ca50df005\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613694} {\"correlation_id\":\"cd14d297-e2e1-425f-b745-361ca50df005\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613694,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cd14d297-e2e1-425f-b745-361ca50df005\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613694,\"participants\":[{\"id\":1001659,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1001660,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"cd14d297-e2e1-425f-b745-361ca50df005\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cd14d297-e2e1-425f-b745-361ca50df005\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cd14d297-e2e1-425f-b745-361ca50df005\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cd14d297-e2e1-425f-b745-361ca50df005\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"cd14d297-e2e1-425f-b745-361ca50df005\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"cd14d297-e2e1-425f-b745-361ca50df005\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613694,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"cd14d297-e2e1-425f-b745-361ca50df005\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613694,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"cd14d297-e2e1-425f-b745-361ca50df005\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613694} {\"correlation_id\":\"cd14d297-e2e1-425f-b745-361ca50df005\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613694,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cd14d297-e2e1-425f-b745-361ca50df005\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613694,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"cd14d297-e2e1-425f-b745-361ca50df005\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613157,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34}} {\"correlation_id\":\"ed6d3fa0-08c4-412f-b60d-4582c6dfa704\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613157} {\"correlation_id\":\"ed6d3fa0-08c4-412f-b60d-4582c6dfa704\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613157,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ed6d3fa0-08c4-412f-b60d-4582c6dfa704\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613157,\"participants\":[{\"id\":1000746,\"user_id\":253,\"contact_id\":null,\"lead_id\":null},{\"id\":1000747,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null}]} {\"correlation_id\":\"ed6d3fa0-08c4-412f-b60d-4582c6dfa704\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ed6d3fa0-08c4-412f-b60d-4582c6dfa704\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ed6d3fa0-08c4-412f-b60d-4582c6dfa704\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ed6d3fa0-08c4-412f-b60d-4582c6dfa704\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ed6d3fa0-08c4-412f-b60d-4582c6dfa704\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613157,\"team_id\":2,\"email\":\"preslava.ivanova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"ed6d3fa0-08c4-412f-b60d-4582c6dfa704\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"ed6d3fa0-08c4-412f-b60d-4582c6dfa704\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613157,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"ed6d3fa0-08c4-412f-b60d-4582c6dfa704\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613157} {\"correlation_id\":\"ed6d3fa0-08c4-412f-b60d-4582c6dfa704\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613157,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ed6d3fa0-08c4-412f-b60d-4582c6dfa704\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613157,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34} {\"correlation_id\":\"ed6d3fa0-08c4-412f-b60d-4582c6dfa704\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613156,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34}} {\"correlation_id\":\"77af6469-661f-4d4b-b741-a5b059c8b181\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613156} {\"correlation_id\":\"77af6469-661f-4d4b-b741-a5b059c8b181\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613156,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"77af6469-661f-4d4b-b741-a5b059c8b181\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613156,\"participants\":[{\"id\":1000744,\"user_id\":253,\"contact_id\":null,\"lead_id\":null},{\"id\":1000745,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null}]} {\"correlation_id\":\"77af6469-661f-4d4b-b741-a5b059c8b181\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"77af6469-661f-4d4b-b741-a5b059c8b181\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"77af6469-661f-4d4b-b741-a5b059c8b181\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"77af6469-661f-4d4b-b741-a5b059c8b181\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"77af6469-661f-4d4b-b741-a5b059c8b181\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613156,\"team_id\":2,\"email\":\"preslava.ivanova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"77af6469-661f-4d4b-b741-a5b059c8b181\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"77af6469-661f-4d4b-b741-a5b059c8b181\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613156,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"77af6469-661f-4d4b-b741-a5b059c8b181\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613156} {\"correlation_id\":\"77af6469-661f-4d4b-b741-a5b059c8b181\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613156,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"77af6469-661f-4d4b-b741-a5b059c8b181\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613156,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34} {\"correlation_id\":\"77af6469-661f-4d4b-b741-a5b059c8b181\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613155,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34}} {\"correlation_id\":\"6cd64b7d-2826-41b3-83e4-000c5cd88462\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613155} {\"correlation_id\":\"6cd64b7d-2826-41b3-83e4-000c5cd88462\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613155,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"6cd64b7d-2826-41b3-83e4-000c5cd88462\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613155,\"participants\":[{\"id\":1000742,\"user_id\":253,\"contact_id\":null,\"lead_id\":null},{\"id\":1000743,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null}]} {\"correlation_id\":\"6cd64b7d-2826-41b3-83e4-000c5cd88462\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"6cd64b7d-2826-41b3-83e4-000c5cd88462\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"6cd64b7d-2826-41b3-83e4-000c5cd88462\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"6cd64b7d-2826-41b3-83e4-000c5cd88462\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"6cd64b7d-2826-41b3-83e4-000c5cd88462\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613155,\"team_id\":2,\"email\":\"preslava.ivanova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"6cd64b7d-2826-41b3-83e4-000c5cd88462\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"6cd64b7d-2826-41b3-83e4-000c5cd88462\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613155,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"6cd64b7d-2826-41b3-83e4-000c5cd88462\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613155} {\"correlation_id\":\"6cd64b7d-2826-41b3-83e4-000c5cd88462\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613155,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"6cd64b7d-2826-41b3-83e4-000c5cd88462\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613155,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34} {\"correlation_id\":\"6cd64b7d-2826-41b3-83e4-000c5cd88462\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613130,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"8d0dfbe8-30bd-4332-bf52-762b3a44300b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613130} {\"correlation_id\":\"8d0dfbe8-30bd-4332-bf52-762b3a44300b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613130,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8d0dfbe8-30bd-4332-bf52-762b3a44300b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613130,\"participants\":[{\"id\":1000693,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1000694,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"8d0dfbe8-30bd-4332-bf52-762b3a44300b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8d0dfbe8-30bd-4332-bf52-762b3a44300b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8d0dfbe8-30bd-4332-bf52-762b3a44300b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"8d0dfbe8-30bd-4332-bf52-762b3a44300b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"8d0dfbe8-30bd-4332-bf52-762b3a44300b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"8d0dfbe8-30bd-4332-bf52-762b3a44300b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613130,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"8d0dfbe8-30bd-4332-bf52-762b3a44300b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613130,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"8d0dfbe8-30bd-4332-bf52-762b3a44300b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613130} {\"correlation_id\":\"8d0dfbe8-30bd-4332-bf52-762b3a44300b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613130,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8d0dfbe8-30bd-4332-bf52-762b3a44300b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613130,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"8d0dfbe8-30bd-4332-bf52-762b3a44300b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612924,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":165,\"stage_id\":89}} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612924} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612924,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612924,\"participants\":[{\"id\":1000290,\"user_id\":19,\"contact_id\":null,\"lead_id\":null},{\"id\":1000291,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612924,\"team_id\":2,\"email\":\"james.graham@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":69,\"contact_id\":97,\"owner_id\":19} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":69,\"contact_id\":97,\"opportunity_id\":165} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612924,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612924} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612924,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612924,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":165,\"stage_id\":89} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:23] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612923,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":165,\"stage_id\":89}} {\"correlation_id\":\"773e5722-a5c7-48ec-b0d8-11b3aa2aa37a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:23] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612923} {\"correlation_id\":\"773e5722-a5c7-48ec-b0d8-11b3aa2aa37a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:23] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612923,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"773e5722-a5c7-48ec-b0d8-11b3aa2aa37a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:23] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612923,\"participants\":[{\"id\":1000288,\"user_id\":19,\"contact_id\":null,\"lead_id\":null},{\"id\":1000289,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"773e5722-a5c7-48ec-b0d8-11b3aa2aa37a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:23] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"773e5722-a5c7-48ec-b0d8-11b3aa2aa37a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:23] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"773e5722-a5c7-48ec-b0d8-11b3aa2aa37a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:23] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"773e5722-a5c7-48ec-b0d8-11b3aa2aa37a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:23] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"773e5722-a5c7-48ec-b0d8-11b3aa2aa37a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:23] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612923,\"team_id\":2,\"email\":\"james.graham@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"773e5722-a5c7-48ec-b0d8-11b3aa2aa37a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:23] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"773e5722-a5c7-48ec-b0d8-11b3aa2aa37a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:23] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612923,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"773e5722-a5c7-48ec-b0d8-11b3aa2aa37a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:24] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612923} {\"correlation_id\":\"773e5722-a5c7-48ec-b0d8-11b3aa2aa37a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:24] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612923,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"773e5722-a5c7-48ec-b0d8-11b3aa2aa37a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:24] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612923,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":165,\"stage_id\":89} {\"correlation_id\":\"773e5722-a5c7-48ec-b0d8-11b3aa2aa37a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:24] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612922,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":165,\"stage_id\":89}} {\"correlation_id\":\"7d6f9c8c-16e0-4f84-b07d-adddfa5c739f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:24] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612922} {\"correlation_id\":\"7d6f9c8c-16e0-4f84-b07d-adddfa5c739f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:24] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612922,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7d6f9c8c-16e0-4f84-b07d-adddfa5c739f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:24] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612922,\"participants\":[{\"id\":1000286,\"user_id\":19,\"contact_id\":null,\"lead_id\":null},{\"id\":1000287,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"7d6f9c8c-16e0-4f84-b07d-adddfa5c739f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:24] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7d6f9c8c-16e0-4f84-b07d-adddfa5c739f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:24] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7d6f9c8c-16e0-4f84-b07d-adddfa5c739f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7d6f9c8c-16e0-4f84-b07d-adddfa5c739f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"7d6f9c8c-16e0-4f84-b07d-adddfa5c739f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612922,\"team_id\":2,\"email\":\"james.graham@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"7d6f9c8c-16e0-4f84-b07d-adddfa5c739f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"7d6f9c8c-16e0-4f84-b07d-adddfa5c739f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612922,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"7d6f9c8c-16e0-4f84-b07d-adddfa5c739f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612922} {\"correlation_id\":\"7d6f9c8c-16e0-4f84-b07d-adddfa5c739f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612922,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7d6f9c8c-16e0-4f84-b07d-adddfa5c739f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612922,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":165,\"stage_id\":89} {\"correlation_id\":\"7d6f9c8c-16e0-4f84-b07d-adddfa5c739f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612847,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"462c34b9-0b57-4e81-a9e2-5ce4a6900814\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612847} {\"correlation_id\":\"462c34b9-0b57-4e81-a9e2-5ce4a6900814\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612847,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"462c34b9-0b57-4e81-a9e2-5ce4a6900814\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612847,\"participants\":[{\"id\":1000130,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":1000131,\"user_id\":261,\"contact_id\":null,\"lead_id\":null},{\"id\":1000151,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null}]} {\"correlation_id\":\"462c34b9-0b57-4e81-a9e2-5ce4a6900814\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"462c34b9-0b57-4e81-a9e2-5ce4a6900814\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"462c34b9-0b57-4e81-a9e2-5ce4a6900814\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"462c34b9-0b57-4e81-a9e2-5ce4a6900814\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"462c34b9-0b57-4e81-a9e2-5ce4a6900814\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"correlation_id\":\"462c34b9-0b57-4e81-a9e2-5ce4a6900814\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"503de928-3a1a-4314-a23f-ca2625111f7f\",\"trace_id\":\"7ee54e65-014c-4ae3-821a-dc0488dc10ed\"}\n[2026-05-11 11:09:26] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"503de928-3a1a-4314-a23f-ca2625111f7f\",\"trace_id\":\"7ee54e65-014c-4ae3-821a-dc0488dc10ed\"}\n[2026-05-11 11:09:26] local.INFO: [Hubspot] Failed to fetch contact {\"email\":\"adelina.petrova@jiminny.com\",\"reason\":\"[404] Client error: `GET https://api.hubapi.com/crm/v3/objects/contacts/adelina.petrova%40jiminny.com?properties=email%2Cfirstname%2Clastname%2Ccountry%2Cphone%2Cmobilephone%2Cjobtitle%2Chubspot_owner_id%2Cassociatedcompanyid%2Cphoto&archived=0&idProperty=email` resulted in a `404 Not Found` response\"} {\"correlation_id\":\"462c34b9-0b57-4e81-a9e2-5ce4a6900814\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:26] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"correlation_id\":\"462c34b9-0b57-4e81-a9e2-5ce4a6900814\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:26] local.WARNING: [Hubspot] No retry-after header or known message, using default {\"exception_class\":\"SevenShores\\\\Hubspot\\\\Exceptions\\\\BadRequest\",\"message\":\"\"} {\"correlation_id\":\"462c34b9-0b57-4e81-a9e2-5ce4a6900814\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:26] local.WARNING: [Hubspot] Received 429 from API {\"team_id\":2,\"config_id\":2,\"retry_after\":10,\"message\":\"\",\"reason\":\"Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response:\n{\\\"status\\\":\\\"error\\\",\\\"message\\\":\\\"You have reached your secondly limit.\\\",\\\"errorType\\\":\\\"RATE_LIMIT\\\",\\\"correlationId\\\":\\\"019e16ba-4 (truncated...)\n\"} {\"correlation_id\":\"462c34b9-0b57-4e81-a9e2-5ce4a6900814\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:26] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":10,\"delay\":14} {\"correlation_id\":\"462c34b9-0b57-4e81-a9e2-5ce4a6900814\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:26] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612822,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"ca259dfb-7b24-4406-9b61-a4f28761020b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:26] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612822} {\"correlation_id\":\"ca259dfb-7b24-4406-9b61-a4f28761020b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:26] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612822,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ca259dfb-7b24-4406-9b61-a4f28761020b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:26] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612822,\"participants\":[{\"id\":1000080,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1000081,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"ca259dfb-7b24-4406-9b61-a4f28761020b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ca259dfb-7b24-4406-9b61-a4f28761020b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ca259dfb-7b24-4406-9b61-a4f28761020b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ca259dfb-7b24-4406-9b61-a4f28761020b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ca259dfb-7b24-4406-9b61-a4f28761020b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"ca259dfb-7b24-4406-9b61-a4f28761020b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612822,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"ca259dfb-7b24-4406-9b61-a4f28761020b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612822,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"ca259dfb-7b24-4406-9b61-a4f28761020b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612822} {\"correlation_id\":\"ca259dfb-7b24-4406-9b61-a4f28761020b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612822,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ca259dfb-7b24-4406-9b61-a4f28761020b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612822,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"ca259dfb-7b24-4406-9b61-a4f28761020b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612819,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"cd602b18-88a5-4ea9-afef-e52be017fc0f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612819} {\"correlation_id\":\"cd602b18-88a5-4ea9-afef-e52be017fc0f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612819,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cd602b18-88a5-4ea9-afef-e52be017fc0f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612819,\"participants\":[{\"id\":1000073,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1000074,\"user_id\":261,\"contact_id\":null,\"lead_id\":null},{\"id\":1000075,\"user_id\":null,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"cd602b18-88a5-4ea9-afef-e52be017fc0f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cd602b18-88a5-4ea9-afef-e52be017fc0f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cd602b18-88a5-4ea9-afef-e52be017fc0f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cd602b18-88a5-4ea9-afef-e52be017fc0f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"cd602b18-88a5-4ea9-afef-e52be017fc0f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"cd602b18-88a5-4ea9-afef-e52be017fc0f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612819,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"cd602b18-88a5-4ea9-afef-e52be017fc0f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"correlation_id\":\"cd602b18-88a5-4ea9-afef-e52be017fc0f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"correlation_id\":\"cd602b18-88a5-4ea9-afef-e52be017fc0f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":10,\"delay\":10} {\"correlation_id\":\"cd602b18-88a5-4ea9-afef-e52be017fc0f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612673,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"d86174e3-e3b0-41d6-b9f5-97de4ca4da9f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612673} {\"correlation_id\":\"d86174e3-e3b0-41d6-b9f5-97de4ca4da9f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612673,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d86174e3-e3b0-41d6-b9f5-97de4ca4da9f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612673,\"participants\":[{\"id\":999993,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":999994,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"d86174e3-e3b0-41d6-b9f5-97de4ca4da9f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d86174e3-e3b0-41d6-b9f5-97de4ca4da9f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d86174e3-e3b0-41d6-b9f5-97de4ca4da9f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"d86174e3-e3b0-41d6-b9f5-97de4ca4da9f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"d86174e3-e3b0-41d6-b9f5-97de4ca4da9f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"d86174e3-e3b0-41d6-b9f5-97de4ca4da9f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612673,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"d86174e3-e3b0-41d6-b9f5-97de4ca4da9f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612673,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"d86174e3-e3b0-41d6-b9f5-97de4ca4da9f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612673} {\"correlation_id\":\"d86174e3-e3b0-41d6-b9f5-97de4ca4da9f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612673,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d86174e3-e3b0-41d6-b9f5-97de4ca4da9f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612673,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"d86174e3-e3b0-41d6-b9f5-97de4ca4da9f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612642,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"2f9f8923-a6e3-4e5b-a1ae-cdea42bb3cda\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612642} {\"correlation_id\":\"2f9f8923-a6e3-4e5b-a1ae-cdea42bb3cda\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612642,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2f9f8923-a6e3-4e5b-a1ae-cdea42bb3cda\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612642,\"participants\":[{\"id\":999935,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":999936,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"2f9f8923-a6e3-4e5b-a1ae-cdea42bb3cda\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2f9f8923-a6e3-4e5b-a1ae-cdea42bb3cda\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2f9f8923-a6e3-4e5b-a1ae-cdea42bb3cda\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"2f9f8923-a6e3-4e5b-a1ae-cdea42bb3cda\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"2f9f8923-a6e3-4e5b-a1ae-cdea42bb3cda\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"2f9f8923-a6e3-4e5b-a1ae-cdea42bb3cda\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612642,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"2f9f8923-a6e3-4e5b-a1ae-cdea42bb3cda\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612642,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"2f9f8923-a6e3-4e5b-a1ae-cdea42bb3cda\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612642} {\"correlation_id\":\"2f9f8923-a6e3-4e5b-a1ae-cdea42bb3cda\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612642,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2f9f8923-a6e3-4e5b-a1ae-cdea42bb3cda\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612642,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"2f9f8923-a6e3-4e5b-a1ae-cdea42bb3cda\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612598,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612598} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612598,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612598,\"participants\":[{\"id\":999857,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999858,\"user_id\":206,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":243,\"contact_id\":4491,\"owner_id\":206} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":243,\"contact_id\":4491} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":243,\"contact_id\":4491,\"opportunity_id\":276} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612598,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612598,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612598} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612598,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612598,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":5.94,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"6d49ffdc-2ed7-4eae-a1ee-e25ca95bbea8\",\"trace_id\":\"906573b5-005c-4820-8a32-3b0703ea86dd\"}\n[2026-05-11 11:09:28] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612597,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"c69a3a24-bab5-4d56-887b-01111944b3a2\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612597} {\"correlation_id\":\"c69a3a24-bab5-4d56-887b-01111944b3a2\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612597,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"c69a3a24-bab5-4d56-887b-01111944b3a2\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612597,\"participants\":[{\"id\":999855,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999856,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null}]} {\"correlation_id\":\"c69a3a24-bab5-4d56-887b-01111944b3a2\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"c69a3a24-bab5-4d56-887b-01111944b3a2\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"c69a3a24-bab5-4d56-887b-01111944b3a2\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"c69a3a24-bab5-4d56-887b-01111944b3a2\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"c69a3a24-bab5-4d56-887b-01111944b3a2\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612597,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"c69a3a24-bab5-4d56-887b-01111944b3a2\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"c69a3a24-bab5-4d56-887b-01111944b3a2\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612597,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"c69a3a24-bab5-4d56-887b-01111944b3a2\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612597} {\"correlation_id\":\"c69a3a24-bab5-4d56-887b-01111944b3a2\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612597,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"c69a3a24-bab5-4d56-887b-01111944b3a2\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612597,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"c69a3a24-bab5-4d56-887b-01111944b3a2\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612596,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"0da9fc28-653b-406f-bafe-5d78010cb3da\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612596} {\"correlation_id\":\"0da9fc28-653b-406f-bafe-5d78010cb3da\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612596,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0da9fc28-653b-406f-bafe-5d78010cb3da\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612596,\"participants\":[{\"id\":999853,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999854,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null}]} {\"correlation_id\":\"0da9fc28-653b-406f-bafe-5d78010cb3da\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0da9fc28-653b-406f-bafe-5d78010cb3da\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0da9fc28-653b-406f-bafe-5d78010cb3da\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0da9fc28-653b-406f-bafe-5d78010cb3da\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0da9fc28-653b-406f-bafe-5d78010cb3da\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612596,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"0da9fc28-653b-406f-bafe-5d78010cb3da\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"0da9fc28-653b-406f-bafe-5d78010cb3da\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612596,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"0da9fc28-653b-406f-bafe-5d78010cb3da\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612596} {\"correlation_id\":\"0da9fc28-653b-406f-bafe-5d78010cb3da\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612596,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0da9fc28-653b-406f-bafe-5d78010cb3da\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612596,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"0da9fc28-653b-406f-bafe-5d78010cb3da\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612595,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"f7dd9c18-1f48-4adc-b2a2-a5e768444dfd\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612595} {\"correlation_id\":\"f7dd9c18-1f48-4adc-b2a2-a5e768444dfd\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612595,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"f7dd9c18-1f48-4adc-b2a2-a5e768444dfd\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612595,\"participants\":[{\"id\":999851,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999852,\"user_id\":206,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"f7dd9c18-1f48-4adc-b2a2-a5e768444dfd\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f7dd9c18-1f48-4adc-b2a2-a5e768444dfd\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f7dd9c18-1f48-4adc-b2a2-a5e768444dfd\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"f7dd9c18-1f48-4adc-b2a2-a5e768444dfd\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"f7dd9c18-1f48-4adc-b2a2-a5e768444dfd\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"f7dd9c18-1f48-4adc-b2a2-a5e768444dfd\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612595,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"f7dd9c18-1f48-4adc-b2a2-a5e768444dfd\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612595,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"f7dd9c18-1f48-4adc-b2a2-a5e768444dfd\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612595} {\"correlation_id\":\"f7dd9c18-1f48-4adc-b2a2-a5e768444dfd\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612595,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"f7dd9c18-1f48-4adc-b2a2-a5e768444dfd\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612595,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"f7dd9c18-1f48-4adc-b2a2-a5e768444dfd\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612594,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"4dacaa76-fc8b-462e-95ae-b74602d62a8f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612594} {\"correlation_id\":\"4dacaa76-fc8b-462e-95ae-b74602d62a8f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612594,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4dacaa76-fc8b-462e-95ae-b74602d62a8f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612594,\"participants\":[{\"id\":999849,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999850,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null}]} {\"correlation_id\":\"4dacaa76-fc8b-462e-95ae-b74602d62a8f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4dacaa76-fc8b-462e-95ae-b74602d62a8f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4dacaa76-fc8b-462e-95ae-b74602d62a8f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"4dacaa76-fc8b-462e-95ae-b74602d62a8f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"4dacaa76-fc8b-462e-95ae-b74602d62a8f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612594,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"4dacaa76-fc8b-462e-95ae-b74602d62a8f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"4dacaa76-fc8b-462e-95ae-b74602d62a8f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612594,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"4dacaa76-fc8b-462e-95ae-b74602d62a8f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612594} {\"correlation_id\":\"4dacaa76-fc8b-462e-95ae-b74602d62a8f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612594,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4dacaa76-fc8b-462e-95ae-b74602d62a8f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612594,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"4dacaa76-fc8b-462e-95ae-b74602d62a8f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612593,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"0845a766-3bc8-4303-83dc-9f0e57d46a44\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612593} {\"correlation_id\":\"0845a766-3bc8-4303-83dc-9f0e57d46a44\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612593,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0845a766-3bc8-4303-83dc-9f0e57d46a44\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612593,\"participants\":[{\"id\":999847,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999848,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null}]} {\"correlation_id\":\"0845a766-3bc8-4303-83dc-9f0e57d46a44\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0845a766-3bc8-4303-83dc-9f0e57d46a44\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0845a766-3bc8-4303-83dc-9f0e57d46a44\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0845a766-3bc8-4303-83dc-9f0e57d46a44\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0845a766-3bc8-4303-83dc-9f0e57d46a44\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612593,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"0845a766-3bc8-4303-83dc-9f0e57d46a44\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"0845a766-3bc8-4303-83dc-9f0e57d46a44\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612593,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"0845a766-3bc8-4303-83dc-9f0e57d46a44\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612593} {\"correlation_id\":\"0845a766-3bc8-4303-83dc-9f0e57d46a44\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612593,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0845a766-3bc8-4303-83dc-9f0e57d46a44\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612593,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"0845a766-3bc8-4303-83dc-9f0e57d46a44\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612592,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"315733d6-e316-4fb7-9ab6-c38b0bc2a394\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612592} {\"correlation_id\":\"315733d6-e316-4fb7-9ab6-c38b0bc2a394\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612592,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"315733d6-e316-4fb7-9ab6-c38b0bc2a394\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612592,\"participants\":[{\"id\":999845,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999846,\"user_id\":206,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"315733d6-e316-4fb7-9ab6-c38b0bc2a394\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"315733d6-e316-4fb7-9ab6-c38b0bc2a394\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"315733d6-e316-4fb7-9ab6-c38b0bc2a394\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"315733d6-e316-4fb7-9ab6-c38b0bc2a394\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"315733d6-e316-4fb7-9ab6-c38b0bc2a394\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"315733d6-e316-4fb7-9ab6-c38b0bc2a394\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612592,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"315733d6-e316-4fb7-9ab6-c38b0bc2a394\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612592,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"315733d6-e316-4fb7-9ab6-c38b0bc2a394\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612592} {\"correlation_id\":\"315733d6-e316-4fb7-9ab6-c38b0bc2a394\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612592,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"315733d6-e316-4fb7-9ab6-c38b0bc2a394\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612592,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"315733d6-e316-4fb7-9ab6-c38b0bc2a394\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612591,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"a4f3cee6-628d-4ea1-afef-271709541a6f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612591} {\"correlation_id\":\"a4f3cee6-628d-4ea1-afef-271709541a6f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612591,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a4f3cee6-628d-4ea1-afef-271709541a6f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612591,\"participants\":[{\"id\":999843,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999844,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null}]} {\"correlation_id\":\"a4f3cee6-628d-4ea1-afef-271709541a6f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a4f3cee6-628d-4ea1-afef-271709541a6f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a4f3cee6-628d-4ea1-afef-271709541a6f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"a4f3cee6-628d-4ea1-afef-271709541a6f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"a4f3cee6-628d-4ea1-afef-271709541a6f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612591,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"a4f3cee6-628d-4ea1-afef-271709541a6f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"a4f3cee6-628d-4ea1-afef-271709541a6f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612591,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"a4f3cee6-628d-4ea1-afef-271709541a6f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612591} {\"correlation_id\":\"a4f3cee6-628d-4ea1-afef-271709541a6f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612591,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a4f3cee6-628d-4ea1-afef-271709541a6f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612591,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"a4f3cee6-628d-4ea1-afef-271709541a6f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612590,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"dfa94946-5871-4106-8e8f-5e7a418e64ae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612590} {\"correlation_id\":\"dfa94946-5871-4106-8e8f-5e7a418e64ae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612590,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"dfa94946-5871-4106-8e8f-5e7a418e64ae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612590,\"participants\":[{\"id\":999841,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999842,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null}]} {\"correlation_id\":\"dfa94946-5871-4106-8e8f-5e7a418e64ae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"dfa94946-5871-4106-8e8f-5e7a418e64ae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"dfa94946-5871-4106-8e8f-5e7a418e64ae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"dfa94946-5871-4106-8e8f-5e7a418e64ae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"dfa94946-5871-4106-8e8f-5e7a418e64ae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612590,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"dfa94946-5871-4106-8e8f-5e7a418e64ae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"dfa94946-5871-4106-8e8f-5e7a418e64ae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612590,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"dfa94946-5871-4106-8e8f-5e7a418e64ae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612590} {\"correlation_id\":\"dfa94946-5871-4106-8e8f-5e7a418e64ae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612590,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"dfa94946-5871-4106-8e8f-5e7a418e64ae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612590,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"dfa94946-5871-4106-8e8f-5e7a418e64ae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612589,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"92666ef7-2d6e-4056-9d87-23df1bc694b1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612589} {\"correlation_id\":\"92666ef7-2d6e-4056-9d87-23df1bc694b1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612589,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"92666ef7-2d6e-4056-9d87-23df1bc694b1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612589,\"participants\":[{\"id\":999839,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999840,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null}]} {\"correlation_id\":\"92666ef7-2d6e-4056-9d87-23df1bc694b1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"92666ef7-2d6e-4056-9d87-23df1bc694b1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"92666ef7-2d6e-4056-9d87-23df1bc694b1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"92666ef7-2d6e-4056-9d87-23df1bc694b1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"92666ef7-2d6e-4056-9d87-23df1bc694b1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612589,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"92666ef7-2d6e-4056-9d87-23df1bc694b1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"92666ef7-2d6e-4056-9d87-23df1bc694b1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612589,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"92666ef7-2d6e-4056-9d87-23df1bc694b1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612589} {\"correlation_id\":\"92666ef7-2d6e-4056-9d87-23df1bc694b1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612589,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"92666ef7-2d6e-4056-9d87-23df1bc694b1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612589,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"92666ef7-2d6e-4056-9d87-23df1bc694b1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612588,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"7441c20c-f1d3-4310-a3a7-2c1aad9bbe25\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612588} {\"correlation_id\":\"7441c20c-f1d3-4310-a3a7-2c1aad9bbe25\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612588,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7441c20c-f1d3-4310-a3a7-2c1aad9bbe25\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612588,\"participants\":[{\"id\":999837,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999838,\"user_id\":206,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"7441c20c-f1d3-4310-a3a7-2c1aad9bbe25\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7441c20c-f1d3-4310-a3a7-2c1aad9bbe25\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7441c20c-f1d3-4310-a3a7-2c1aad9bbe25\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7441c20c-f1d3-4310-a3a7-2c1aad9bbe25\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"7441c20c-f1d3-4310-a3a7-2c1aad9bbe25\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"7441c20c-f1d3-4310-a3a7-2c1aad9bbe25\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612588,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"7441c20c-f1d3-4310-a3a7-2c1aad9bbe25\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612588,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"7441c20c-f1d3-4310-a3a7-2c1aad9bbe25\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612588} {\"correlation_id\":\"7441c20c-f1d3-4310-a3a7-2c1aad9bbe25\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612588,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7441c20c-f1d3-4310-a3a7-2c1aad9bbe25\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612588,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"7441c20c-f1d3-4310-a3a7-2c1aad9bbe25\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612587,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"b6283377-e461-4841-90a6-bd9b51c31e78\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612587} {\"correlation_id\":\"b6283377-e461-4841-90a6-bd9b51c31e78\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612587,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b6283377-e461-4841-90a6-bd9b51c31e78\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612587,\"participants\":[{\"id\":999835,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999836,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null}]} {\"correlation_id\":\"b6283377-e461-4841-90a6-bd9b51c31e78\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b6283377-e461-4841-90a6-bd9b51c31e78\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b6283377-e461-4841-90a6-bd9b51c31e78\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b6283377-e461-4841-90a6-bd9b51c31e78\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"b6283377-e461-4841-90a6-bd9b51c31e78\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612587,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"b6283377-e461-4841-90a6-bd9b51c31e78\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"b6283377-e461-4841-90a6-bd9b51c31e78\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612587,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"b6283377-e461-4841-90a6-bd9b51c31e78\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612587} {\"correlation_id\":\"b6283377-e461-4841-90a6-bd9b51c31e78\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612587,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b6283377-e461-4841-90a6-bd9b51c31e78\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612587,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"b6283377-e461-4841-90a6-bd9b51c31e78\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612586,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"d0ddb01c-2b21-4989-998a-fa52e7affced\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612586} {\"correlation_id\":\"d0ddb01c-2b21-4989-998a-fa52e7affced\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612586,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d0ddb01c-2b21-4989-998a-fa52e7affced\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612586,\"participants\":[{\"id\":999833,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999834,\"user_id\":206,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"d0ddb01c-2b21-4989-998a-fa52e7affced\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d0ddb01c-2b21-4989-998a-fa52e7affced\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d0ddb01c-2b21-4989-998a-fa52e7affced\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"d0ddb01c-2b21-4989-998a-fa52e7affced\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"d0ddb01c-2b21-4989-998a-fa52e7affced\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"d0ddb01c-2b21-4989-998a-fa52e7affced\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612586,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"d0ddb01c-2b21-4989-998a-fa52e7affced\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612586,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"d0ddb01c-2b21-4989-998a-fa52e7affced\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612586} {\"correlation_id\":\"d0ddb01c-2b21-4989-998a-fa52e7affced\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612586,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d0ddb01c-2b21-4989-998a-fa52e7affced\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612586,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"d0ddb01c-2b21-4989-998a-fa52e7affced\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.NOTICE: Monitoring start {\"correlation_id\":\"772cf24f-66f8-49c0-8ef5-e6c1d128fccb\",\"trace_id\":\"2d950f5a-3a35-4a8b-b33b-4d129409925b\"}\n[2026-05-11 11:09:31] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612585,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"cef11ffe-61af-425d-b899-399323237a47\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612585} {\"correlation_id\":\"cef11ffe-61af-425d-b899-399323237a47\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612585,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cef11ffe-61af-425d-b899-399323237a47\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.NOTICE: Monitoring end {\"correlation_id\":\"772cf24f-66f8-49c0-8ef5-e6c1d128fccb\",\"trace_id\":\"2d950f5a-3a35-4a8b-b33b-4d129409925b\"}\n[2026-05-11 11:09:31] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612585,\"participants\":[{\"id\":999831,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999832,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null}]} {\"correlation_id\":\"cef11ffe-61af-425d-b899-399323237a47\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cef11ffe-61af-425d-b899-399323237a47\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cef11ffe-61af-425d-b899-399323237a47\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cef11ffe-61af-425d-b899-399323237a47\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"cef11ffe-61af-425d-b899-399323237a47\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612585,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"cef11ffe-61af-425d-b899-399323237a47\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"cef11ffe-61af-425d-b899-399323237a47\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612585,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"cef11ffe-61af-425d-b899-399323237a47\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612585} {\"correlation_id\":\"cef11ffe-61af-425d-b899-399323237a47\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612585,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cef11ffe-61af-425d-b899-399323237a47\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612585,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"cef11ffe-61af-425d-b899-399323237a47\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612584,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"2aa83935-5a46-4a3d-98d7-acfcf3f3f6cb\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612584} {\"correlation_id\":\"2aa83935-5a46-4a3d-98d7-acfcf3f3f6cb\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612584,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2aa83935-5a46-4a3d-98d7-acfcf3f3f6cb\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612584,\"participants\":[{\"id\":999829,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999830,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null}]} {\"correlation_id\":\"2aa83935-5a46-4a3d-98d7-acfcf3f3f6cb\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2aa83935-5a46-4a3d-98d7-acfcf3f3f6cb\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2aa83935-5a46-4a3d-98d7-acfcf3f3f6cb\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"2aa83935-5a46-4a3d-98d7-acfcf3f3f6cb\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"2aa83935-5a46-4a3d-98d7-acfcf3f3f6cb\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612584,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"2aa83935-5a46-4a3d-98d7-acfcf3f3f6cb\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"2aa83935-5a46-4a3d-98d7-acfcf3f3f6cb\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612584,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"2aa83935-5a46-4a3d-98d7-acfcf3f3f6cb\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612584} {\"correlation_id\":\"2aa83935-5a46-4a3d-98d7-acfcf3f3f6cb\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612584,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2aa83935-5a46-4a3d-98d7-acfcf3f3f6cb\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612584,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"2aa83935-5a46-4a3d-98d7-acfcf3f3f6cb\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612583,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"04dd4d55-bdb2-4f42-9fbd-8a132707b475\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612583} {\"correlation_id\":\"04dd4d55-bdb2-4f42-9fbd-8a132707b475\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612583,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"04dd4d55-bdb2-4f42-9fbd-8a132707b475\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612583,\"participants\":[{\"id\":999827,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999828,\"user_id\":206,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"04dd4d55-bdb2-4f42-9fbd-8a132707b475\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"04dd4d55-bdb2-4f42-9fbd-8a132707b475\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"04dd4d55-bdb2-4f42-9fbd-8a132707b475\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"04dd4d55-bdb2-4f42-9fbd-8a132707b475\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"04dd4d55-bdb2-4f42-9fbd-8a132707b475\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"04dd4d55-bdb2-4f42-9fbd-8a132707b475\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612583,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"04dd4d55-bdb2-4f42-9fbd-8a132707b475\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612583,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"04dd4d55-bdb2-4f42-9fbd-8a132707b475\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612583} {\"correlation_id\":\"04dd4d55-bdb2-4f42-9fbd-8a132707b475\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612583,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"04dd4d55-bdb2-4f42-9fbd-8a132707b475\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612583,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"04dd4d55-bdb2-4f42-9fbd-8a132707b475\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612582,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"58e7116b-76f4-4698-a629-ff1eb613d93e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612582} {\"correlation_id\":\"58e7116b-76f4-4698-a629-ff1eb613d93e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612582,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"58e7116b-76f4-4698-a629-ff1eb613d93e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612582,\"participants\":[{\"id\":999825,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999826,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null}]} {\"correlation_id\":\"58e7116b-76f4-4698-a629-ff1eb613d93e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"58e7116b-76f4-4698-a629-ff1eb613d93e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"58e7116b-76f4-4698-a629-ff1eb613d93e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"58e7116b-76f4-4698-a629-ff1eb613d93e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"58e7116b-76f4-4698-a629-ff1eb613d93e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612582,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"58e7116b-76f4-4698-a629-ff1eb613d93e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"58e7116b-76f4-4698-a629-ff1eb613d93e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612582,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"58e7116b-76f4-4698-a629-ff1eb613d93e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612582} {\"correlation_id\":\"58e7116b-76f4-4698-a629-ff1eb613d93e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612582,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"58e7116b-76f4-4698-a629-ff1eb613d93e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612582,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"58e7116b-76f4-4698-a629-ff1eb613d93e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612581,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"b1cdf1eb-a77f-4062-bc7a-52e75ec005f1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612581} {\"correlation_id\":\"b1cdf1eb-a77f-4062-bc7a-52e75ec005f1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612581,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b1cdf1eb-a77f-4062-bc7a-52e75ec005f1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612581,\"participants\":[{\"id\":999823,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999824,\"user_id\":206,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"b1cdf1eb-a77f-4062-bc7a-52e75ec005f1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b1cdf1eb-a77f-4062-bc7a-52e75ec005f1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b1cdf1eb-a77f-4062-bc7a-52e75ec005f1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b1cdf1eb-a77f-4062-bc7a-52e75ec005f1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"b1cdf1eb-a77f-4062-bc7a-52e75ec005f1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"b1cdf1eb-a77f-4062-bc7a-52e75ec005f1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612581,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"b1cdf1eb-a77f-4062-bc7a-52e75ec005f1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612581,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"b1cdf1eb-a77f-4062-bc7a-52e75ec005f1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612581} {\"correlation_id\":\"b1cdf1eb-a77f-4062-bc7a-52e75ec005f1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612581,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b1cdf1eb-a77f-4062-bc7a-52e75ec005f1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612581,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"b1cdf1eb-a77f-4062-bc7a-52e75ec005f1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612565,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"4531fd00-7875-4334-b3c2-407d31ec1255\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612565} {\"correlation_id\":\"4531fd00-7875-4334-b3c2-407d31ec1255\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612565,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4531fd00-7875-4334-b3c2-407d31ec1255\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612565,\"participants\":[{\"id\":999789,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999790,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null}]} {\"correlation_id\":\"4531fd00-7875-4334-b3c2-407d31ec1255\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4531fd00-7875-4334-b3c2-407d31ec1255\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4531fd00-7875-4334-b3c2-407d31ec1255\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"4531fd00-7875-4334-b3c2-407d31ec1255\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"4531fd00-7875-4334-b3c2-407d31ec1255\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612565,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"4531fd00-7875-4334-b3c2-407d31ec1255\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"4531fd00-7875-4334-b3c2-407d31ec1255\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612565,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"4531fd00-7875-4334-b3c2-407d31ec1255\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612565} {\"correlation_id\":\"4531fd00-7875-4334-b3c2-407d31ec1255\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612565,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4531fd00-7875-4334-b3c2-407d31ec1255\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612565,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"4531fd00-7875-4334-b3c2-407d31ec1255\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612563,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34}} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612563} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612563,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612563,\"participants\":[{\"id\":999784,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999785,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null}]} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612563,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":206} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":244,\"contact_id\":4487} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":350} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612563,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612563} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612563,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612563,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612562,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"correlation_id\":\"096bc408-0a3f-43ef-9cf6-f9007ee7315c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612562} {\"correlation_id\":\"096bc408-0a3f-43ef-9cf6-f9007ee7315c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612562,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"096bc408-0a3f-43ef-9cf6-f9007ee7315c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612562,\"participants\":[{\"id\":999782,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":999783,\"user_id\":206,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"096bc408-0a3f-43ef-9cf6-f9007ee7315c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"096bc408-0a3f-43ef-9cf6-f9007ee7315c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"096bc408-0a3f-43ef-9cf6-f9007ee7315c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"096bc408-0a3f-43ef-9cf6-f9007ee7315c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"096bc408-0a3f-43ef-9cf6-f9007ee7315c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"447782589921@txt.staging.jiminny.com\"} {\"correlation_id\":\"096bc408-0a3f-43ef-9cf6-f9007ee7315c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:34] local.INFO: [Hubspot] Failed to fetch contact {\"email\":\"447782589921@txt.staging.jiminny.com\",\"reason\":\"[404] Client error: `GET https://api.hubapi.com/crm/v3/objects/contacts/447782589921%40txt.staging.jiminny.com?properties=email%2Cfirstname%2Clastname%2Ccountry%2Cphone%2Cmobilephone%2Cjobtitle%2Chubspot_owner_id%2Cassociatedcompanyid%2Cphoto&archived=0&idProperty=email` resulted in a `404 Not Found` response\"} {\"correlation_id\":\"096bc408-0a3f-43ef-9cf6-f9007ee7315c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:34] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {\"identifier_type\":\"email\",\"identifier\":\"447782589921@txt.staging.jiminny.com\"} {\"correlation_id\":\"096bc408-0a3f-43ef-9cf6-f9007ee7315c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:34] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":10,\"delay\":14} {\"correlation_id\":\"096bc408-0a3f-43ef-9cf6-f9007ee7315c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:34] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612561,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"correlation_id\":\"cded6bdb-0e7c-4baa-b280-5798e81b236a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:34] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612561} {\"correlation_id\":\"cded6bdb-0e7c-4baa-b280-5798e81b236a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:34] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612561,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cded6bdb-0e7c-4baa-b280-5798e81b236a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:34] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612561,\"participants\":[{\"id\":999780,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999781,\"user_id\":null,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"cded6bdb-0e7c-4baa-b280-5798e81b236a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:34] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cded6bdb-0e7c-4baa-b280-5798e81b236a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:34] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cded6bdb-0e7c-4baa-b280-5798e81b236a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:34] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cded6bdb-0e7c-4baa-b280-5798e81b236a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:34] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"cded6bdb-0e7c-4baa-b280-5798e81b236a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:34] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612561,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"cded6bdb-0e7c-4baa-b280-5798e81b236a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:34] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"447700174614.447782589921.OeREojLVnk@txt.staging.jiminny.com\"} {\"correlation_id\":\"cded6bdb-0e7c-4baa-b280-5798e81b236a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [Hubspot] Failed to fetch contact {\"email\":\"447700174614.447782589921.OeREojLVnk@txt.staging.jiminny.com\",\"reason\":\"[404] Client error: `GET https://api.hubapi.com/crm/v3/objects/contacts/447700174614.447782589921.OeREojLVnk%40txt.staging.jiminny.com?properties=email%2Cfirstname%2Clastname%2Ccountry%2Cphone%2Cmobilephone%2Cjobtitle%2Chubspot_owner_id%2Cassociatedcompanyid%2Cphoto&archived=0&idProperty=email` resulted in a `404 Not Found` response\"} {\"correlation_id\":\"cded6bdb-0e7c-4baa-b280-5798e81b236a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {\"identifier_type\":\"email\",\"identifier\":\"447700174614.447782589921.OeREojLVnk@txt.staging.jiminny.com\"} {\"correlation_id\":\"cded6bdb-0e7c-4baa-b280-5798e81b236a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":10,\"delay\":10} {\"correlation_id\":\"cded6bdb-0e7c-4baa-b280-5798e81b236a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612560,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"correlation_id\":\"53ef5599-df42-4f3d-90a1-8f89c19435e4\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612560} {\"correlation_id\":\"53ef5599-df42-4f3d-90a1-8f89c19435e4\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612560,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"53ef5599-df42-4f3d-90a1-8f89c19435e4\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612560,\"participants\":[{\"id\":999778,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":999779,\"user_id\":206,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"53ef5599-df42-4f3d-90a1-8f89c19435e4\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"53ef5599-df42-4f3d-90a1-8f89c19435e4\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"53ef5599-df42-4f3d-90a1-8f89c19435e4\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"53ef5599-df42-4f3d-90a1-8f89c19435e4\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"53ef5599-df42-4f3d-90a1-8f89c19435e4\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"447782589921@txt.staging.jiminny.com\"} {\"correlation_id\":\"53ef5599-df42-4f3d-90a1-8f89c19435e4\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"447782589921@txt.staging.jiminny.com\"} {\"correlation_id\":\"53ef5599-df42-4f3d-90a1-8f89c19435e4\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":10,\"delay\":12} {\"correlation_id\":\"53ef5599-df42-4f3d-90a1-8f89c19435e4\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612559,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34}} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612559} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612559,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612559,\"participants\":[{\"id\":999776,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999777,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612559,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":69,\"contact_id\":97,\"owner_id\":206} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":69,\"contact_id\":97} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":69,\"contact_id\":97,\"opportunity_id\":5011} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":2.07,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"6d49ffdc-2ed7-4eae-a1ee-e25ca95bbea8\",\"trace_id\":\"906573b5-005c-4820-8a32-3b0703ea86dd\"}\n[2026-05-11 11:09:35] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612559,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612559} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612559,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612559,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612558,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34}} {\"correlation_id\":\"34a7b1c6-be3b-4790-a04c-0311e25dadc8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612558} {\"correlation_id\":\"34a7b1c6-be3b-4790-a04c-0311e25dadc8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612558,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"34a7b1c6-be3b-4790-a04c-0311e25dadc8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612558,\"participants\":[{\"id\":999774,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999775,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"34a7b1c6-be3b-4790-a04c-0311e25dadc8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"34a7b1c6-be3b-4790-a04c-0311e25dadc8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"34a7b1c6-be3b-4790-a04c-0311e25dadc8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"34a7b1c6-be3b-4790-a04c-0311e25dadc8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"34a7b1c6-be3b-4790-a04c-0311e25dadc8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612558,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"34a7b1c6-be3b-4790-a04c-0311e25dadc8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"34a7b1c6-be3b-4790-a04c-0311e25dadc8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612558,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"34a7b1c6-be3b-4790-a04c-0311e25dadc8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612558} {\"correlation_id\":\"34a7b1c6-be3b-4790-a04c-0311e25dadc8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612558,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"34a7b1c6-be3b-4790-a04c-0311e25dadc8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612558,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34} {\"correlation_id\":\"34a7b1c6-be3b-4790-a04c-0311e25dadc8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612557,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34}} {\"correlation_id\":\"26d4d3d0-ebf8-44ad-a48f-24728e5539e0\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612557} {\"correlation_id\":\"26d4d3d0-ebf8-44ad-a48f-24728e5539e0\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612557,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"26d4d3d0-ebf8-44ad-a48f-24728e5539e0\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612557,\"participants\":[{\"id\":999772,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999773,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"26d4d3d0-ebf8-44ad-a48f-24728e5539e0\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"26d4d3d0-ebf8-44ad-a48f-24728e5539e0\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"26d4d3d0-ebf8-44ad-a48f-24728e5539e0\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"26d4d3d0-ebf8-44ad-a48f-24728e5539e0\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"26d4d3d0-ebf8-44ad-a48f-24728e5539e0\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612557,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"26d4d3d0-ebf8-44ad-a48f-24728e5539e0\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"26d4d3d0-ebf8-44ad-a48f-24728e5539e0\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612557,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"26d4d3d0-ebf8-44ad-a48f-24728e5539e0\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612557} {\"correlation_id\":\"26d4d3d0-ebf8-44ad-a48f-24728e5539e0\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612557,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"26d4d3d0-ebf8-44ad-a48f-24728e5539e0\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612557,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34} {\"correlation_id\":\"26d4d3d0-ebf8-44ad-a48f-24728e5539e0\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612556,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34}} {\"correlation_id\":\"406b7ad3-26d6-4b1b-9ad7-fff68622b149\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612556} {\"correlation_id\":\"406b7ad3-26d6-4b1b-9ad7-fff68622b149\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612556,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"406b7ad3-26d6-4b1b-9ad7-fff68622b149\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612556,\"participants\":[{\"id\":999770,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999771,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"406b7ad3-26d6-4b1b-9ad7-fff68622b149\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"406b7ad3-26d6-4b1b-9ad7-fff68622b149\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"406b7ad3-26d6-4b1b-9ad7-fff68622b149\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"406b7ad3-26d6-4b1b-9ad7-fff68622b149\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"406b7ad3-26d6-4b1b-9ad7-fff68622b149\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612556,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"406b7ad3-26d6-4b1b-9ad7-fff68622b149\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"406b7ad3-26d6-4b1b-9ad7-fff68622b149\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612556,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"406b7ad3-26d6-4b1b-9ad7-fff68622b149\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612556} {\"correlation_id\":\"406b7ad3-26d6-4b1b-9ad7-fff68622b149\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612556,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"406b7ad3-26d6-4b1b-9ad7-fff68622b149\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612556,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34} {\"correlation_id\":\"406b7ad3-26d6-4b1b-9ad7-fff68622b149\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612555,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34}} {\"correlation_id\":\"c15b7703-f17b-48e7-bf38-122448d79345\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612555} {\"correlation_id\":\"c15b7703-f17b-48e7-bf38-122448d79345\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612555,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"c15b7703-f17b-48e7-bf38-122448d79345\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612555,\"participants\":[{\"id\":999768,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999769,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"c15b7703-f17b-48e7-bf38-122448d79345\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"c15b7703-f17b-48e7-bf38-122448d79345\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"c15b7703-f17b-48e7-bf38-122448d79345\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"c15b7703-f17b-48e7-bf38-122448d79345\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"c15b7703-f17b-48e7-bf38-122448d79345\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612555,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"c15b7703-f17b-48e7-bf38-122448d79345\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"c15b7703-f17b-48e7-bf38-122448d79345\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612555,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"c15b7703-f17b-48e7-bf38-122448d79345\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612555} {\"correlation_id\":\"c15b7703-f17b-48e7-bf38-122448d79345\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612555,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"c15b7703-f17b-48e7-bf38-122448d79345\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612555,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34} {\"correlation_id\":\"c15b7703-f17b-48e7-bf38-122448d79345\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612554,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34}} {\"correlation_id\":\"c9cce71b-d96d-4117-b9fb-bb9672ae7c2b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612554} {\"correlation_id\":\"c9cce71b-d96d-4117-b9fb-bb9672ae7c2b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612554,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"c9cce71b-d96d-4117-b9fb-bb9672ae7c2b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612554,\"participants\":[{\"id\":999766,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999767,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"c9cce71b-d96d-4117-b9fb-bb9672ae7c2b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"c9cce71b-d96d-4117-b9fb-bb9672ae7c2b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"c9cce71b-d96d-4117-b9fb-bb9672ae7c2b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"c9cce71b-d96d-4117-b9fb-bb9672ae7c2b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"c9cce71b-d96d-4117-b9fb-bb9672ae7c2b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612554,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"c9cce71b-d96d-4117-b9fb-bb9672ae7c2b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"c9cce71b-d96d-4117-b9fb-bb9672ae7c2b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612554,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"c9cce71b-d96d-4117-b9fb-bb9672ae7c2b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612554} {\"correlation_id\":\"c9cce71b-d96d-4117-b9fb-bb9672ae7c2b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612554,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"c9cce71b-d96d-4117-b9fb-bb9672ae7c2b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612554,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34} {\"correlation_id\":\"c9cce71b-d96d-4117-b9fb-bb9672ae7c2b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612553,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34}} {\"correlation_id\":\"ffd2857e-be14-4ab1-8533-93b20116db02\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612553} {\"correlation_id\":\"ffd2857e-be14-4ab1-8533-93b20116db02\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612553,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ffd2857e-be14-4ab1-8533-93b20116db02\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612553,\"participants\":[{\"id\":999764,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999765,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"ffd2857e-be14-4ab1-8533-93b20116db02\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ffd2857e-be14-4ab1-8533-93b20116db02\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ffd2857e-be14-4ab1-8533-93b20116db02\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ffd2857e-be14-4ab1-8533-93b20116db02\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ffd2857e-be14-4ab1-8533-93b20116db02\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612553,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"ffd2857e-be14-4ab1-8533-93b20116db02\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"ffd2857e-be14-4ab1-8533-93b20116db02\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612553,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"ffd2857e-be14-4ab1-8533-93b20116db02\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612553} {\"correlation_id\":\"ffd2857e-be14-4ab1-8533-93b20116db02\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612553,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ffd2857e-be14-4ab1-8533-93b20116db02\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612553,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34} {\"correlation_id\":\"ffd2857e-be14-4ab1-8533-93b20116db02\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612552,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34}} {\"correlation_id\":\"7942c5ee-3b2d-4f76-8728-d5343cd7b02e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612552} {\"correlation_id\":\"7942c5ee-3b2d-4f76-8728-d5343cd7b02e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612552,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7942c5ee-3b2d-4f76-8728-d5343cd7b02e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612552,\"participants\":[{\"id\":999762,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999763,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"7942c5ee-3b2d-4f76-8728-d5343cd7b02e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7942c5ee-3b2d-4f76-8728-d5343cd7b02e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7942c5ee-3b2d-4f76-8728-d5343cd7b02e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7942c5ee-3b2d-4f76-8728-d5343cd7b02e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"7942c5ee-3b2d-4f76-8728-d5343cd7b02e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612552,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"7942c5ee-3b2d-4f76-8728-d5343cd7b02e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"7942c5ee-3b2d-4f76-8728-d5343cd7b02e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612552,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"7942c5ee-3b2d-4f76-8728-d5343cd7b02e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612552} {\"correlation_id\":\"7942c5ee-3b2d-4f76-8728-d5343cd7b02e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612552,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7942c5ee-3b2d-4f76-8728-d5343cd7b02e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612552,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34} {\"correlation_id\":\"7942c5ee-3b2d-4f76-8728-d5343cd7b02e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612551,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34}} {\"correlation_id\":\"8068bb0d-ab6d-48ee-abe2-d6cd116aba26\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612551} {\"correlation_id\":\"8068bb0d-ab6d-48ee-abe2-d6cd116aba26\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612551,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8068bb0d-ab6d-48ee-abe2-d6cd116aba26\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612551,\"participants\":[{\"id\":999760,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999761,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"8068bb0d-ab6d-48ee-abe2-d6cd116aba26\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8068bb0d-ab6d-48ee-abe2-d6cd116aba26\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8068bb0d-ab6d-48ee-abe2-d6cd116aba26\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"8068bb0d-ab6d-48ee-abe2-d6cd116aba26\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"8068bb0d-ab6d-48ee-abe2-d6cd116aba26\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612551,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"8068bb0d-ab6d-48ee-abe2-d6cd116aba26\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"8068bb0d-ab6d-48ee-abe2-d6cd116aba26\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612551,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"8068bb0d-ab6d-48ee-abe2-d6cd116aba26\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612551} {\"correlation_id\":\"8068bb0d-ab6d-48ee-abe2-d6cd116aba26\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612551,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8068bb0d-ab6d-48ee-abe2-d6cd116aba26\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612551,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34} {\"correlation_id\":\"8068bb0d-ab6d-48ee-abe2-d6cd116aba26\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:37] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612550,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34}} {\"correlation_id\":\"36bdbff9-cfb6-43af-b7c4-f2caafa8e794\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:37] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612550} {\"correlation_id\":\"36bdbff9-cfb6-43af-b7c4-f2caafa8e794\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:37] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612550,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"36bdbff9-cfb6-43af-b7c4-f2caafa8e794\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:37] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612550,\"participants\":[{\"id\":999758,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999759,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"36bdbff9-cfb6-43af-b7c4-f2caafa8e794\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:37] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"36bdbff9-cfb6-43af-b7c4-f2caafa8e794\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:37] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"36bdbff9-cfb6-43af-b7c4-f2caafa8e794\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:37] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"36bdbff9-cfb6-43af-b7c4-f2caafa8e794\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:37] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"36bdbff9-cfb6-43af-b7c4-f2caafa8e794\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:37] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612550,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"36bdbff9-cfb6-43af-b7c4-f2caafa8e794\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:37] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"36bdbff9-cfb6-43af-b7c4-f2caafa8e794\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:37] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612550,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"36bdbff9-cfb6-43af-b7c4-f2caafa8e794\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:38] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612550} {\"correlation_id\":\"36bdbff9-cfb6-43af-b7c4-f2caafa8e794\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:38] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612550,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"36bdbff9-cfb6-43af-b7c4-f2caafa8e794\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:38] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612550,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34} {\"correlation_id\":\"36bdbff9-cfb6-43af-b7c4-f2caafa8e794\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:38] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612549,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34}} {\"correlation_id\":\"c2ff3c6c-7380-4c1c-a1f5-50044a473ac8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:38] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612549} {\"correlation_id\":\"c2ff3c6c-7380-4c1c-a1f5-50044a473ac8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:38] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612549,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"c2ff3c6c-7380-4c1c-a1f5-50044a473ac8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:38] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612549,\"participants\":[{\"id\":999756,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999757,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"c2ff3c6c-7380-4c1c-a1f5-50044a473ac8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:39] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"c2ff3c6c-7380-4c1c-a1f5-50044a473ac8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:39] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"c2ff3c6c-7380-4c1c-a1f5-50044a473ac8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:39] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"c2ff3c6c-7380-4c1c-a1f5-50044a473ac8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"c2ff3c6c-7380-4c1c-a1f5-50044a473ac8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:39] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612549,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"c2ff3c6c-7380-4c1c-a1f5-50044a473ac8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:39] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"c2ff3c6c-7380-4c1c-a1f5-50044a473ac8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:39] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612549,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"c2ff3c6c-7380-4c1c-a1f5-50044a473ac8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:39] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612549} {\"correlation_id\":\"c2ff3c6c-7380-4c1c-a1f5-50044a473ac8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612549,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"c2ff3c6c-7380-4c1c-a1f5-50044a473ac8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:39] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612549,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34} {\"correlation_id\":\"c2ff3c6c-7380-4c1c-a1f5-50044a473ac8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:40] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612365,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"a9faea34-163e-4d2a-8007-c903951e3b79\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612365} {\"correlation_id\":\"a9faea34-163e-4d2a-8007-c903951e3b79\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612365,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a9faea34-163e-4d2a-8007-c903951e3b79\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:40] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612365,\"participants\":[{\"id\":999563,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999564,\"user_id\":206,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"a9faea34-163e-4d2a-8007-c903951e3b79\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a9faea34-163e-4d2a-8007-c903951e3b79\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a9faea34-163e-4d2a-8007-c903951e3b79\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"a9faea34-163e-4d2a-8007-c903951e3b79\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"a9faea34-163e-4d2a-8007-c903951e3b79\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"a9faea34-163e-4d2a-8007-c903951e3b79\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:40] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612365,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"a9faea34-163e-4d2a-8007-c903951e3b79\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612365,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"a9faea34-163e-4d2a-8007-c903951e3b79\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612365} {\"correlation_id\":\"a9faea34-163e-4d2a-8007-c903951e3b79\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612365,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a9faea34-163e-4d2a-8007-c903951e3b79\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:41] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612365,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"a9faea34-163e-4d2a-8007-c903951e3b79\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}","depth":4,"bounds":{"left":0.4268617,"top":0.10614525,"width":0.5731383,"height":0.89385474},"on_screen":true,"value":"[2026-05-11 11:08:45] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"43b1fb67-9aac-4fc6-9ced-689ecda5c548\",\"trace_id\":\"60028d0e-dcd8-496a-a7ba-3a04b8d646e2\"}\n[2026-05-11 11:08:45] local.INFO: [Commands/AsyncUpdateEsEntities] Starting ES update worker {\"pid\":72650,\"workerId\":\"\",\"target\":\"activities\"} {\"correlation_id\":\"6d49ffdc-2ed7-4eae-a1ee-e25ca95bbea8\",\"trace_id\":\"906573b5-005c-4820-8a32-3b0703ea86dd\"}\n[2026-05-11 11:08:46] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"43b1fb67-9aac-4fc6-9ced-689ecda5c548\",\"trace_id\":\"60028d0e-dcd8-496a-a7ba-3a04b8d646e2\"}\n[2026-05-11 11:09:12] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":615092,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"correlation_id\":\"f33d47cb-76c6-4c27-a641-48cbf69e623d\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:12] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":615092} {\"correlation_id\":\"f33d47cb-76c6-4c27-a641-48cbf69e623d\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:12] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":615092,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"f33d47cb-76c6-4c27-a641-48cbf69e623d\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:12] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":615092,\"participants\":[{\"id\":1004102,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":1004103,\"user_id\":89,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"f33d47cb-76c6-4c27-a641-48cbf69e623d\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:12] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f33d47cb-76c6-4c27-a641-48cbf69e623d\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:12] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f33d47cb-76c6-4c27-a641-48cbf69e623d\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:12] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"f33d47cb-76c6-4c27-a641-48cbf69e623d\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:12] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"f33d47cb-76c6-4c27-a641-48cbf69e623d\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:12] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"f33d47cb-76c6-4c27-a641-48cbf69e623d\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:13] local.INFO: [Hubspot] Failed to fetch contact {\"email\":\"nikolay.nikolov@jiminny.com\",\"reason\":\"[404] Client error: `GET https://api.hubapi.com/crm/v3/objects/contacts/nikolay.nikolov%40jiminny.com?properties=email%2Cfirstname%2Clastname%2Ccountry%2Cphone%2Cmobilephone%2Cjobtitle%2Chubspot_owner_id%2Cassociatedcompanyid%2Cphoto&archived=0&idProperty=email` resulted in a `404 Not Found` response\"} {\"correlation_id\":\"f33d47cb-76c6-4c27-a641-48cbf69e623d\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:13] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"f33d47cb-76c6-4c27-a641-48cbf69e623d\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:13] local.WARNING: [Hubspot] No retry-after header or known message, using default {\"exception_class\":\"SevenShores\\\\Hubspot\\\\Exceptions\\\\BadRequest\",\"message\":\"\"} {\"correlation_id\":\"f33d47cb-76c6-4c27-a641-48cbf69e623d\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:13] local.WARNING: [Hubspot] Received 429 from API {\"team_id\":2,\"config_id\":2,\"retry_after\":10,\"message\":\"\",\"reason\":\"Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response:\n{\\\"status\\\":\\\"error\\\",\\\"message\\\":\\\"You have reached your secondly limit.\\\",\\\"errorType\\\":\\\"RATE_LIMIT\\\",\\\"correlationId\\\":\\\"019e16ba-1 (truncated...)\n\"} {\"correlation_id\":\"f33d47cb-76c6-4c27-a641-48cbf69e623d\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:13] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":10,\"delay\":12} {\"correlation_id\":\"f33d47cb-76c6-4c27-a641-48cbf69e623d\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":614436,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"correlation_id\":\"ccafe863-7885-4971-96fb-87ef6dd4adf3\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614436} {\"correlation_id\":\"ccafe863-7885-4971-96fb-87ef6dd4adf3\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614436,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ccafe863-7885-4971-96fb-87ef6dd4adf3\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":614436,\"participants\":[{\"id\":1002751,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":1002752,\"user_id\":89,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"ccafe863-7885-4971-96fb-87ef6dd4adf3\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ccafe863-7885-4971-96fb-87ef6dd4adf3\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ccafe863-7885-4971-96fb-87ef6dd4adf3\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ccafe863-7885-4971-96fb-87ef6dd4adf3\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ccafe863-7885-4971-96fb-87ef6dd4adf3\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"ccafe863-7885-4971-96fb-87ef6dd4adf3\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"ccafe863-7885-4971-96fb-87ef6dd4adf3\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":10,\"delay\":10} {\"correlation_id\":\"ccafe863-7885-4971-96fb-87ef6dd4adf3\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":614382,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"correlation_id\":\"f00a4506-adfe-4fdc-b932-e6d2bc751fde\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614382} {\"correlation_id\":\"f00a4506-adfe-4fdc-b932-e6d2bc751fde\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614382,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"f00a4506-adfe-4fdc-b932-e6d2bc751fde\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":614382,\"participants\":[{\"id\":1002632,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":1002633,\"user_id\":89,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"f00a4506-adfe-4fdc-b932-e6d2bc751fde\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f00a4506-adfe-4fdc-b932-e6d2bc751fde\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f00a4506-adfe-4fdc-b932-e6d2bc751fde\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"f00a4506-adfe-4fdc-b932-e6d2bc751fde\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"f00a4506-adfe-4fdc-b932-e6d2bc751fde\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"f00a4506-adfe-4fdc-b932-e6d2bc751fde\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"f00a4506-adfe-4fdc-b932-e6d2bc751fde\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":10,\"delay\":12} {\"correlation_id\":\"f00a4506-adfe-4fdc-b932-e6d2bc751fde\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":614381,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"correlation_id\":\"36bd73f5-17f9-4f70-8254-2214543c7f8e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614381} {\"correlation_id\":\"36bd73f5-17f9-4f70-8254-2214543c7f8e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614381,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"36bd73f5-17f9-4f70-8254-2214543c7f8e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":614381,\"participants\":[{\"id\":1002630,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":1002631,\"user_id\":89,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"36bd73f5-17f9-4f70-8254-2214543c7f8e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"36bd73f5-17f9-4f70-8254-2214543c7f8e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"36bd73f5-17f9-4f70-8254-2214543c7f8e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"36bd73f5-17f9-4f70-8254-2214543c7f8e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"36bd73f5-17f9-4f70-8254-2214543c7f8e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"36bd73f5-17f9-4f70-8254-2214543c7f8e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"36bd73f5-17f9-4f70-8254-2214543c7f8e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":10,\"delay\":10} {\"correlation_id\":\"36bd73f5-17f9-4f70-8254-2214543c7f8e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":614378,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":6167,\"account_id\":null,\"opportunity_id\":null,\"stage_id\":null}} {\"correlation_id\":\"a4a3a058-ec22-4f04-bb14-a9bff18ce214\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614378} {\"correlation_id\":\"a4a3a058-ec22-4f04-bb14-a9bff18ce214\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614378,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a4a3a058-ec22-4f04-bb14-a9bff18ce214\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":614378,\"participants\":[{\"id\":1002623,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":1002624,\"user_id\":null,\"contact_id\":6167,\"lead_id\":null},{\"id\":1002625,\"user_id\":89,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"a4a3a058-ec22-4f04-bb14-a9bff18ce214\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a4a3a058-ec22-4f04-bb14-a9bff18ce214\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a4a3a058-ec22-4f04-bb14-a9bff18ce214\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"a4a3a058-ec22-4f04-bb14-a9bff18ce214\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"a4a3a058-ec22-4f04-bb14-a9bff18ce214\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"a4a3a058-ec22-4f04-bb14-a9bff18ce214\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"a4a3a058-ec22-4f04-bb14-a9bff18ce214\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":10,\"delay\":12} {\"correlation_id\":\"a4a3a058-ec22-4f04-bb14-a9bff18ce214\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613840,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613840} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613840,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613840,\"participants\":[{\"id\":1001764,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1001765,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":261} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":299} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613840,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613840,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613840} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613840,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613840,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"d86caa21-8980-460b-b2be-88292956cdb3\",\"trace_id\":\"6f80ed90-fa59-444e-a016-33a62019c6a4\"}\n[2026-05-11 11:09:15] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613833,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"ed230e3b-8ded-4591-bfe7-d4ead6f411c1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613833} {\"correlation_id\":\"ed230e3b-8ded-4591-bfe7-d4ead6f411c1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613833,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ed230e3b-8ded-4591-bfe7-d4ead6f411c1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613833,\"participants\":[{\"id\":1001750,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1001751,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"ed230e3b-8ded-4591-bfe7-d4ead6f411c1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"d86caa21-8980-460b-b2be-88292956cdb3\",\"trace_id\":\"6f80ed90-fa59-444e-a016-33a62019c6a4\"}\n[2026-05-11 11:09:15] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"d86caa21-8980-460b-b2be-88292956cdb3\",\"trace_id\":\"6f80ed90-fa59-444e-a016-33a62019c6a4\"}\n[2026-05-11 11:09:15] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ed230e3b-8ded-4591-bfe7-d4ead6f411c1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ed230e3b-8ded-4591-bfe7-d4ead6f411c1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ed230e3b-8ded-4591-bfe7-d4ead6f411c1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ed230e3b-8ded-4591-bfe7-d4ead6f411c1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"ed230e3b-8ded-4591-bfe7-d4ead6f411c1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613833,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"ed230e3b-8ded-4591-bfe7-d4ead6f411c1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613833,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"ed230e3b-8ded-4591-bfe7-d4ead6f411c1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613833} {\"correlation_id\":\"ed230e3b-8ded-4591-bfe7-d4ead6f411c1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613833,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ed230e3b-8ded-4591-bfe7-d4ead6f411c1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613833,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"ed230e3b-8ded-4591-bfe7-d4ead6f411c1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613827,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"d165f8f2-23f6-4f9a-90e7-7b600066818c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613827} {\"correlation_id\":\"d165f8f2-23f6-4f9a-90e7-7b600066818c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613827,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d165f8f2-23f6-4f9a-90e7-7b600066818c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613827,\"participants\":[{\"id\":1001734,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1001735,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"d165f8f2-23f6-4f9a-90e7-7b600066818c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d165f8f2-23f6-4f9a-90e7-7b600066818c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d165f8f2-23f6-4f9a-90e7-7b600066818c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"d165f8f2-23f6-4f9a-90e7-7b600066818c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"d165f8f2-23f6-4f9a-90e7-7b600066818c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"d165f8f2-23f6-4f9a-90e7-7b600066818c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613827,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"d165f8f2-23f6-4f9a-90e7-7b600066818c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613827,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"d165f8f2-23f6-4f9a-90e7-7b600066818c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613827} {\"correlation_id\":\"d165f8f2-23f6-4f9a-90e7-7b600066818c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613827,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d165f8f2-23f6-4f9a-90e7-7b600066818c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613827,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"d165f8f2-23f6-4f9a-90e7-7b600066818c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613826,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"1816f96e-c36b-474a-8f46-bc8c71bb0079\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613826} {\"correlation_id\":\"1816f96e-c36b-474a-8f46-bc8c71bb0079\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613826,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1816f96e-c36b-474a-8f46-bc8c71bb0079\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613826,\"participants\":[{\"id\":1001732,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1001733,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"1816f96e-c36b-474a-8f46-bc8c71bb0079\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1816f96e-c36b-474a-8f46-bc8c71bb0079\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1816f96e-c36b-474a-8f46-bc8c71bb0079\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1816f96e-c36b-474a-8f46-bc8c71bb0079\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1816f96e-c36b-474a-8f46-bc8c71bb0079\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"1816f96e-c36b-474a-8f46-bc8c71bb0079\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613826,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"1816f96e-c36b-474a-8f46-bc8c71bb0079\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613826,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"1816f96e-c36b-474a-8f46-bc8c71bb0079\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613826} {\"correlation_id\":\"1816f96e-c36b-474a-8f46-bc8c71bb0079\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613826,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1816f96e-c36b-474a-8f46-bc8c71bb0079\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613826,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"1816f96e-c36b-474a-8f46-bc8c71bb0079\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613820,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"a2b1cf94-6665-4574-a821-fcd845d290dc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613820} {\"correlation_id\":\"a2b1cf94-6665-4574-a821-fcd845d290dc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613820,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a2b1cf94-6665-4574-a821-fcd845d290dc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613820,\"participants\":[{\"id\":1001721,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1001722,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"a2b1cf94-6665-4574-a821-fcd845d290dc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a2b1cf94-6665-4574-a821-fcd845d290dc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a2b1cf94-6665-4574-a821-fcd845d290dc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"a2b1cf94-6665-4574-a821-fcd845d290dc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"a2b1cf94-6665-4574-a821-fcd845d290dc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"a2b1cf94-6665-4574-a821-fcd845d290dc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613820,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"a2b1cf94-6665-4574-a821-fcd845d290dc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613820,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"a2b1cf94-6665-4574-a821-fcd845d290dc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613820} {\"correlation_id\":\"a2b1cf94-6665-4574-a821-fcd845d290dc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613820,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a2b1cf94-6665-4574-a821-fcd845d290dc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613820,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"a2b1cf94-6665-4574-a821-fcd845d290dc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613818,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"7194ba37-7af3-4aa0-80a3-14b38431fd39\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613818} {\"correlation_id\":\"7194ba37-7af3-4aa0-80a3-14b38431fd39\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613818,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7194ba37-7af3-4aa0-80a3-14b38431fd39\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613818,\"participants\":[{\"id\":1001717,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1001718,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"7194ba37-7af3-4aa0-80a3-14b38431fd39\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7194ba37-7af3-4aa0-80a3-14b38431fd39\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7194ba37-7af3-4aa0-80a3-14b38431fd39\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7194ba37-7af3-4aa0-80a3-14b38431fd39\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"7194ba37-7af3-4aa0-80a3-14b38431fd39\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"7194ba37-7af3-4aa0-80a3-14b38431fd39\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613818,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"7194ba37-7af3-4aa0-80a3-14b38431fd39\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613818,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"7194ba37-7af3-4aa0-80a3-14b38431fd39\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613818} {\"correlation_id\":\"7194ba37-7af3-4aa0-80a3-14b38431fd39\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613818,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7194ba37-7af3-4aa0-80a3-14b38431fd39\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613818,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"7194ba37-7af3-4aa0-80a3-14b38431fd39\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613812,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"1fe899e0-6ad7-4159-b5f9-6f34b32d31d6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613812} {\"correlation_id\":\"1fe899e0-6ad7-4159-b5f9-6f34b32d31d6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613812,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1fe899e0-6ad7-4159-b5f9-6f34b32d31d6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613812,\"participants\":[{\"id\":1001705,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1001706,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"1fe899e0-6ad7-4159-b5f9-6f34b32d31d6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1fe899e0-6ad7-4159-b5f9-6f34b32d31d6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1fe899e0-6ad7-4159-b5f9-6f34b32d31d6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1fe899e0-6ad7-4159-b5f9-6f34b32d31d6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1fe899e0-6ad7-4159-b5f9-6f34b32d31d6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"1fe899e0-6ad7-4159-b5f9-6f34b32d31d6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613812,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"1fe899e0-6ad7-4159-b5f9-6f34b32d31d6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613812,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"1fe899e0-6ad7-4159-b5f9-6f34b32d31d6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613812} {\"correlation_id\":\"1fe899e0-6ad7-4159-b5f9-6f34b32d31d6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613812,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1fe899e0-6ad7-4159-b5f9-6f34b32d31d6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613812,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"1fe899e0-6ad7-4159-b5f9-6f34b32d31d6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613807,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4484,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613807} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613807,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613807,\"participants\":[{\"id\":1001690,\"user_id\":253,\"contact_id\":null,\"lead_id\":null},{\"id\":1001691,\"user_id\":null,\"contact_id\":4484,\"lead_id\":null}]} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613807,\"team_id\":2,\"email\":\"preslava.ivanova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":243,\"contact_id\":4484,\"owner_id\":253} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":243,\"contact_id\":4484} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":243,\"contact_id\":4484,\"opportunity_id\":276} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":1.06,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"6d49ffdc-2ed7-4eae-a1ee-e25ca95bbea8\",\"trace_id\":\"906573b5-005c-4820-8a32-3b0703ea86dd\"}\n[2026-05-11 11:09:17] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"tsvetomir.banovski@gmail.com\"} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613807,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613807} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613807,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613807,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4484,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613806,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34}} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613806} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613806,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613806,\"participants\":[{\"id\":1001688,\"user_id\":253,\"contact_id\":null,\"lead_id\":null},{\"id\":1001689,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null}]} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613806,\"team_id\":2,\"email\":\"preslava.ivanova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":253} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":244,\"contact_id\":4487} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":350} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613806,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613806} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613806,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613806,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613805,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34}} {\"correlation_id\":\"e6a724a6-dc6e-4440-ab48-641336d6ca17\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613805} {\"correlation_id\":\"e6a724a6-dc6e-4440-ab48-641336d6ca17\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613805,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e6a724a6-dc6e-4440-ab48-641336d6ca17\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613805,\"participants\":[{\"id\":1001686,\"user_id\":253,\"contact_id\":null,\"lead_id\":null},{\"id\":1001687,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null}]} {\"correlation_id\":\"e6a724a6-dc6e-4440-ab48-641336d6ca17\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e6a724a6-dc6e-4440-ab48-641336d6ca17\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e6a724a6-dc6e-4440-ab48-641336d6ca17\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"e6a724a6-dc6e-4440-ab48-641336d6ca17\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"e6a724a6-dc6e-4440-ab48-641336d6ca17\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613805,\"team_id\":2,\"email\":\"preslava.ivanova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"e6a724a6-dc6e-4440-ab48-641336d6ca17\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"e6a724a6-dc6e-4440-ab48-641336d6ca17\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613805,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"e6a724a6-dc6e-4440-ab48-641336d6ca17\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613805} {\"correlation_id\":\"e6a724a6-dc6e-4440-ab48-641336d6ca17\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613805,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e6a724a6-dc6e-4440-ab48-641336d6ca17\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613805,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34} {\"correlation_id\":\"e6a724a6-dc6e-4440-ab48-641336d6ca17\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613698,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"67158d25-23dc-4314-8813-caa3c43fa3f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613698} {\"correlation_id\":\"67158d25-23dc-4314-8813-caa3c43fa3f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613698,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"67158d25-23dc-4314-8813-caa3c43fa3f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613698,\"participants\":[{\"id\":1001667,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1001668,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"67158d25-23dc-4314-8813-caa3c43fa3f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"67158d25-23dc-4314-8813-caa3c43fa3f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"67158d25-23dc-4314-8813-caa3c43fa3f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"67158d25-23dc-4314-8813-caa3c43fa3f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"67158d25-23dc-4314-8813-caa3c43fa3f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"67158d25-23dc-4314-8813-caa3c43fa3f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613698,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"67158d25-23dc-4314-8813-caa3c43fa3f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613698,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"67158d25-23dc-4314-8813-caa3c43fa3f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613698} {\"correlation_id\":\"67158d25-23dc-4314-8813-caa3c43fa3f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613698,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"67158d25-23dc-4314-8813-caa3c43fa3f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613698,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"67158d25-23dc-4314-8813-caa3c43fa3f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613697,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"8d2a290e-88e6-494a-91c2-f63f0338f30f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613697} {\"correlation_id\":\"8d2a290e-88e6-494a-91c2-f63f0338f30f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613697,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8d2a290e-88e6-494a-91c2-f63f0338f30f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613697,\"participants\":[{\"id\":1001665,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1001666,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"8d2a290e-88e6-494a-91c2-f63f0338f30f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8d2a290e-88e6-494a-91c2-f63f0338f30f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8d2a290e-88e6-494a-91c2-f63f0338f30f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"8d2a290e-88e6-494a-91c2-f63f0338f30f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"8d2a290e-88e6-494a-91c2-f63f0338f30f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"8d2a290e-88e6-494a-91c2-f63f0338f30f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613697,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"8d2a290e-88e6-494a-91c2-f63f0338f30f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613697,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"8d2a290e-88e6-494a-91c2-f63f0338f30f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613697} {\"correlation_id\":\"8d2a290e-88e6-494a-91c2-f63f0338f30f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613697,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8d2a290e-88e6-494a-91c2-f63f0338f30f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613697,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"8d2a290e-88e6-494a-91c2-f63f0338f30f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613696,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"d1c50e93-0488-4315-a739-f89181b77d87\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613696} {\"correlation_id\":\"d1c50e93-0488-4315-a739-f89181b77d87\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613696,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d1c50e93-0488-4315-a739-f89181b77d87\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613696,\"participants\":[{\"id\":1001663,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1001664,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"d1c50e93-0488-4315-a739-f89181b77d87\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d1c50e93-0488-4315-a739-f89181b77d87\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d1c50e93-0488-4315-a739-f89181b77d87\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"d1c50e93-0488-4315-a739-f89181b77d87\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"d1c50e93-0488-4315-a739-f89181b77d87\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"d1c50e93-0488-4315-a739-f89181b77d87\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613696,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"d1c50e93-0488-4315-a739-f89181b77d87\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613696,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"d1c50e93-0488-4315-a739-f89181b77d87\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613696} {\"correlation_id\":\"d1c50e93-0488-4315-a739-f89181b77d87\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613696,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d1c50e93-0488-4315-a739-f89181b77d87\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613696,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"d1c50e93-0488-4315-a739-f89181b77d87\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613695,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"6dbd1e2c-b89e-47b6-9c2f-d9d7a56b5383\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613695} {\"correlation_id\":\"6dbd1e2c-b89e-47b6-9c2f-d9d7a56b5383\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613695,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"6dbd1e2c-b89e-47b6-9c2f-d9d7a56b5383\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613695,\"participants\":[{\"id\":1001661,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1001662,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"6dbd1e2c-b89e-47b6-9c2f-d9d7a56b5383\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"6dbd1e2c-b89e-47b6-9c2f-d9d7a56b5383\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"6dbd1e2c-b89e-47b6-9c2f-d9d7a56b5383\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"6dbd1e2c-b89e-47b6-9c2f-d9d7a56b5383\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"6dbd1e2c-b89e-47b6-9c2f-d9d7a56b5383\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"6dbd1e2c-b89e-47b6-9c2f-d9d7a56b5383\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613695,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"6dbd1e2c-b89e-47b6-9c2f-d9d7a56b5383\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613695,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"6dbd1e2c-b89e-47b6-9c2f-d9d7a56b5383\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613695} {\"correlation_id\":\"6dbd1e2c-b89e-47b6-9c2f-d9d7a56b5383\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613695,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"6dbd1e2c-b89e-47b6-9c2f-d9d7a56b5383\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613695,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"6dbd1e2c-b89e-47b6-9c2f-d9d7a56b5383\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613694,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"cd14d297-e2e1-425f-b745-361ca50df005\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613694} {\"correlation_id\":\"cd14d297-e2e1-425f-b745-361ca50df005\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613694,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cd14d297-e2e1-425f-b745-361ca50df005\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613694,\"participants\":[{\"id\":1001659,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1001660,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"cd14d297-e2e1-425f-b745-361ca50df005\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cd14d297-e2e1-425f-b745-361ca50df005\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cd14d297-e2e1-425f-b745-361ca50df005\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cd14d297-e2e1-425f-b745-361ca50df005\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"cd14d297-e2e1-425f-b745-361ca50df005\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"cd14d297-e2e1-425f-b745-361ca50df005\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613694,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"cd14d297-e2e1-425f-b745-361ca50df005\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613694,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"cd14d297-e2e1-425f-b745-361ca50df005\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613694} {\"correlation_id\":\"cd14d297-e2e1-425f-b745-361ca50df005\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613694,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cd14d297-e2e1-425f-b745-361ca50df005\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613694,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"cd14d297-e2e1-425f-b745-361ca50df005\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613157,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34}} {\"correlation_id\":\"ed6d3fa0-08c4-412f-b60d-4582c6dfa704\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613157} {\"correlation_id\":\"ed6d3fa0-08c4-412f-b60d-4582c6dfa704\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613157,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ed6d3fa0-08c4-412f-b60d-4582c6dfa704\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613157,\"participants\":[{\"id\":1000746,\"user_id\":253,\"contact_id\":null,\"lead_id\":null},{\"id\":1000747,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null}]} {\"correlation_id\":\"ed6d3fa0-08c4-412f-b60d-4582c6dfa704\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ed6d3fa0-08c4-412f-b60d-4582c6dfa704\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ed6d3fa0-08c4-412f-b60d-4582c6dfa704\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ed6d3fa0-08c4-412f-b60d-4582c6dfa704\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ed6d3fa0-08c4-412f-b60d-4582c6dfa704\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613157,\"team_id\":2,\"email\":\"preslava.ivanova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"ed6d3fa0-08c4-412f-b60d-4582c6dfa704\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"ed6d3fa0-08c4-412f-b60d-4582c6dfa704\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613157,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"ed6d3fa0-08c4-412f-b60d-4582c6dfa704\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613157} {\"correlation_id\":\"ed6d3fa0-08c4-412f-b60d-4582c6dfa704\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613157,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ed6d3fa0-08c4-412f-b60d-4582c6dfa704\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613157,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34} {\"correlation_id\":\"ed6d3fa0-08c4-412f-b60d-4582c6dfa704\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613156,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34}} {\"correlation_id\":\"77af6469-661f-4d4b-b741-a5b059c8b181\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613156} {\"correlation_id\":\"77af6469-661f-4d4b-b741-a5b059c8b181\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613156,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"77af6469-661f-4d4b-b741-a5b059c8b181\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613156,\"participants\":[{\"id\":1000744,\"user_id\":253,\"contact_id\":null,\"lead_id\":null},{\"id\":1000745,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null}]} {\"correlation_id\":\"77af6469-661f-4d4b-b741-a5b059c8b181\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"77af6469-661f-4d4b-b741-a5b059c8b181\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"77af6469-661f-4d4b-b741-a5b059c8b181\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"77af6469-661f-4d4b-b741-a5b059c8b181\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"77af6469-661f-4d4b-b741-a5b059c8b181\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613156,\"team_id\":2,\"email\":\"preslava.ivanova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"77af6469-661f-4d4b-b741-a5b059c8b181\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"77af6469-661f-4d4b-b741-a5b059c8b181\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613156,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"77af6469-661f-4d4b-b741-a5b059c8b181\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613156} {\"correlation_id\":\"77af6469-661f-4d4b-b741-a5b059c8b181\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613156,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"77af6469-661f-4d4b-b741-a5b059c8b181\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613156,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34} {\"correlation_id\":\"77af6469-661f-4d4b-b741-a5b059c8b181\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613155,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34}} {\"correlation_id\":\"6cd64b7d-2826-41b3-83e4-000c5cd88462\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613155} {\"correlation_id\":\"6cd64b7d-2826-41b3-83e4-000c5cd88462\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613155,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"6cd64b7d-2826-41b3-83e4-000c5cd88462\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613155,\"participants\":[{\"id\":1000742,\"user_id\":253,\"contact_id\":null,\"lead_id\":null},{\"id\":1000743,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null}]} {\"correlation_id\":\"6cd64b7d-2826-41b3-83e4-000c5cd88462\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"6cd64b7d-2826-41b3-83e4-000c5cd88462\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"6cd64b7d-2826-41b3-83e4-000c5cd88462\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"6cd64b7d-2826-41b3-83e4-000c5cd88462\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"6cd64b7d-2826-41b3-83e4-000c5cd88462\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613155,\"team_id\":2,\"email\":\"preslava.ivanova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"6cd64b7d-2826-41b3-83e4-000c5cd88462\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"6cd64b7d-2826-41b3-83e4-000c5cd88462\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613155,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"6cd64b7d-2826-41b3-83e4-000c5cd88462\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613155} {\"correlation_id\":\"6cd64b7d-2826-41b3-83e4-000c5cd88462\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613155,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"6cd64b7d-2826-41b3-83e4-000c5cd88462\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613155,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34} {\"correlation_id\":\"6cd64b7d-2826-41b3-83e4-000c5cd88462\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613130,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"8d0dfbe8-30bd-4332-bf52-762b3a44300b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613130} {\"correlation_id\":\"8d0dfbe8-30bd-4332-bf52-762b3a44300b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613130,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8d0dfbe8-30bd-4332-bf52-762b3a44300b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613130,\"participants\":[{\"id\":1000693,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1000694,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"8d0dfbe8-30bd-4332-bf52-762b3a44300b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8d0dfbe8-30bd-4332-bf52-762b3a44300b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8d0dfbe8-30bd-4332-bf52-762b3a44300b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"8d0dfbe8-30bd-4332-bf52-762b3a44300b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"8d0dfbe8-30bd-4332-bf52-762b3a44300b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"8d0dfbe8-30bd-4332-bf52-762b3a44300b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613130,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"8d0dfbe8-30bd-4332-bf52-762b3a44300b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613130,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"8d0dfbe8-30bd-4332-bf52-762b3a44300b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613130} {\"correlation_id\":\"8d0dfbe8-30bd-4332-bf52-762b3a44300b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613130,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8d0dfbe8-30bd-4332-bf52-762b3a44300b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613130,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"8d0dfbe8-30bd-4332-bf52-762b3a44300b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612924,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":165,\"stage_id\":89}} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612924} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612924,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612924,\"participants\":[{\"id\":1000290,\"user_id\":19,\"contact_id\":null,\"lead_id\":null},{\"id\":1000291,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612924,\"team_id\":2,\"email\":\"james.graham@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":69,\"contact_id\":97,\"owner_id\":19} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":69,\"contact_id\":97,\"opportunity_id\":165} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612924,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612924} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612924,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612924,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":165,\"stage_id\":89} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:23] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612923,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":165,\"stage_id\":89}} {\"correlation_id\":\"773e5722-a5c7-48ec-b0d8-11b3aa2aa37a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:23] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612923} {\"correlation_id\":\"773e5722-a5c7-48ec-b0d8-11b3aa2aa37a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:23] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612923,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"773e5722-a5c7-48ec-b0d8-11b3aa2aa37a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:23] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612923,\"participants\":[{\"id\":1000288,\"user_id\":19,\"contact_id\":null,\"lead_id\":null},{\"id\":1000289,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"773e5722-a5c7-48ec-b0d8-11b3aa2aa37a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:23] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"773e5722-a5c7-48ec-b0d8-11b3aa2aa37a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:23] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"773e5722-a5c7-48ec-b0d8-11b3aa2aa37a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:23] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"773e5722-a5c7-48ec-b0d8-11b3aa2aa37a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:23] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"773e5722-a5c7-48ec-b0d8-11b3aa2aa37a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:23] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612923,\"team_id\":2,\"email\":\"james.graham@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"773e5722-a5c7-48ec-b0d8-11b3aa2aa37a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:23] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"773e5722-a5c7-48ec-b0d8-11b3aa2aa37a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:23] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612923,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"773e5722-a5c7-48ec-b0d8-11b3aa2aa37a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:24] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612923} {\"correlation_id\":\"773e5722-a5c7-48ec-b0d8-11b3aa2aa37a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:24] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612923,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"773e5722-a5c7-48ec-b0d8-11b3aa2aa37a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:24] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612923,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":165,\"stage_id\":89} {\"correlation_id\":\"773e5722-a5c7-48ec-b0d8-11b3aa2aa37a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:24] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612922,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":165,\"stage_id\":89}} {\"correlation_id\":\"7d6f9c8c-16e0-4f84-b07d-adddfa5c739f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:24] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612922} {\"correlation_id\":\"7d6f9c8c-16e0-4f84-b07d-adddfa5c739f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:24] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612922,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7d6f9c8c-16e0-4f84-b07d-adddfa5c739f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:24] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612922,\"participants\":[{\"id\":1000286,\"user_id\":19,\"contact_id\":null,\"lead_id\":null},{\"id\":1000287,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"7d6f9c8c-16e0-4f84-b07d-adddfa5c739f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:24] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7d6f9c8c-16e0-4f84-b07d-adddfa5c739f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:24] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7d6f9c8c-16e0-4f84-b07d-adddfa5c739f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7d6f9c8c-16e0-4f84-b07d-adddfa5c739f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"7d6f9c8c-16e0-4f84-b07d-adddfa5c739f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612922,\"team_id\":2,\"email\":\"james.graham@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"7d6f9c8c-16e0-4f84-b07d-adddfa5c739f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"7d6f9c8c-16e0-4f84-b07d-adddfa5c739f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612922,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"7d6f9c8c-16e0-4f84-b07d-adddfa5c739f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612922} {\"correlation_id\":\"7d6f9c8c-16e0-4f84-b07d-adddfa5c739f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612922,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7d6f9c8c-16e0-4f84-b07d-adddfa5c739f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612922,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":165,\"stage_id\":89} {\"correlation_id\":\"7d6f9c8c-16e0-4f84-b07d-adddfa5c739f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612847,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"462c34b9-0b57-4e81-a9e2-5ce4a6900814\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612847} {\"correlation_id\":\"462c34b9-0b57-4e81-a9e2-5ce4a6900814\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612847,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"462c34b9-0b57-4e81-a9e2-5ce4a6900814\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612847,\"participants\":[{\"id\":1000130,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":1000131,\"user_id\":261,\"contact_id\":null,\"lead_id\":null},{\"id\":1000151,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null}]} {\"correlation_id\":\"462c34b9-0b57-4e81-a9e2-5ce4a6900814\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"462c34b9-0b57-4e81-a9e2-5ce4a6900814\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"462c34b9-0b57-4e81-a9e2-5ce4a6900814\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"462c34b9-0b57-4e81-a9e2-5ce4a6900814\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"462c34b9-0b57-4e81-a9e2-5ce4a6900814\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"correlation_id\":\"462c34b9-0b57-4e81-a9e2-5ce4a6900814\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"503de928-3a1a-4314-a23f-ca2625111f7f\",\"trace_id\":\"7ee54e65-014c-4ae3-821a-dc0488dc10ed\"}\n[2026-05-11 11:09:26] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"503de928-3a1a-4314-a23f-ca2625111f7f\",\"trace_id\":\"7ee54e65-014c-4ae3-821a-dc0488dc10ed\"}\n[2026-05-11 11:09:26] local.INFO: [Hubspot] Failed to fetch contact {\"email\":\"adelina.petrova@jiminny.com\",\"reason\":\"[404] Client error: `GET https://api.hubapi.com/crm/v3/objects/contacts/adelina.petrova%40jiminny.com?properties=email%2Cfirstname%2Clastname%2Ccountry%2Cphone%2Cmobilephone%2Cjobtitle%2Chubspot_owner_id%2Cassociatedcompanyid%2Cphoto&archived=0&idProperty=email` resulted in a `404 Not Found` response\"} {\"correlation_id\":\"462c34b9-0b57-4e81-a9e2-5ce4a6900814\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:26] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"correlation_id\":\"462c34b9-0b57-4e81-a9e2-5ce4a6900814\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:26] local.WARNING: [Hubspot] No retry-after header or known message, using default {\"exception_class\":\"SevenShores\\\\Hubspot\\\\Exceptions\\\\BadRequest\",\"message\":\"\"} {\"correlation_id\":\"462c34b9-0b57-4e81-a9e2-5ce4a6900814\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:26] local.WARNING: [Hubspot] Received 429 from API {\"team_id\":2,\"config_id\":2,\"retry_after\":10,\"message\":\"\",\"reason\":\"Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response:\n{\\\"status\\\":\\\"error\\\",\\\"message\\\":\\\"You have reached your secondly limit.\\\",\\\"errorType\\\":\\\"RATE_LIMIT\\\",\\\"correlationId\\\":\\\"019e16ba-4 (truncated...)\n\"} {\"correlation_id\":\"462c34b9-0b57-4e81-a9e2-5ce4a6900814\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:26] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":10,\"delay\":14} {\"correlation_id\":\"462c34b9-0b57-4e81-a9e2-5ce4a6900814\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:26] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612822,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"ca259dfb-7b24-4406-9b61-a4f28761020b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:26] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612822} {\"correlation_id\":\"ca259dfb-7b24-4406-9b61-a4f28761020b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:26] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612822,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ca259dfb-7b24-4406-9b61-a4f28761020b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:26] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612822,\"participants\":[{\"id\":1000080,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1000081,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"ca259dfb-7b24-4406-9b61-a4f28761020b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ca259dfb-7b24-4406-9b61-a4f28761020b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ca259dfb-7b24-4406-9b61-a4f28761020b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ca259dfb-7b24-4406-9b61-a4f28761020b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ca259dfb-7b24-4406-9b61-a4f28761020b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"ca259dfb-7b24-4406-9b61-a4f28761020b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612822,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"ca259dfb-7b24-4406-9b61-a4f28761020b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612822,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"ca259dfb-7b24-4406-9b61-a4f28761020b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612822} {\"correlation_id\":\"ca259dfb-7b24-4406-9b61-a4f28761020b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612822,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ca259dfb-7b24-4406-9b61-a4f28761020b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612822,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"ca259dfb-7b24-4406-9b61-a4f28761020b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612819,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"cd602b18-88a5-4ea9-afef-e52be017fc0f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612819} {\"correlation_id\":\"cd602b18-88a5-4ea9-afef-e52be017fc0f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612819,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cd602b18-88a5-4ea9-afef-e52be017fc0f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612819,\"participants\":[{\"id\":1000073,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1000074,\"user_id\":261,\"contact_id\":null,\"lead_id\":null},{\"id\":1000075,\"user_id\":null,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"cd602b18-88a5-4ea9-afef-e52be017fc0f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cd602b18-88a5-4ea9-afef-e52be017fc0f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cd602b18-88a5-4ea9-afef-e52be017fc0f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cd602b18-88a5-4ea9-afef-e52be017fc0f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"cd602b18-88a5-4ea9-afef-e52be017fc0f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"cd602b18-88a5-4ea9-afef-e52be017fc0f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612819,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"cd602b18-88a5-4ea9-afef-e52be017fc0f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"correlation_id\":\"cd602b18-88a5-4ea9-afef-e52be017fc0f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"correlation_id\":\"cd602b18-88a5-4ea9-afef-e52be017fc0f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":10,\"delay\":10} {\"correlation_id\":\"cd602b18-88a5-4ea9-afef-e52be017fc0f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612673,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"d86174e3-e3b0-41d6-b9f5-97de4ca4da9f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612673} {\"correlation_id\":\"d86174e3-e3b0-41d6-b9f5-97de4ca4da9f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612673,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d86174e3-e3b0-41d6-b9f5-97de4ca4da9f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612673,\"participants\":[{\"id\":999993,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":999994,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"d86174e3-e3b0-41d6-b9f5-97de4ca4da9f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d86174e3-e3b0-41d6-b9f5-97de4ca4da9f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d86174e3-e3b0-41d6-b9f5-97de4ca4da9f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"d86174e3-e3b0-41d6-b9f5-97de4ca4da9f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"d86174e3-e3b0-41d6-b9f5-97de4ca4da9f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"d86174e3-e3b0-41d6-b9f5-97de4ca4da9f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612673,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"d86174e3-e3b0-41d6-b9f5-97de4ca4da9f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612673,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"d86174e3-e3b0-41d6-b9f5-97de4ca4da9f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612673} {\"correlation_id\":\"d86174e3-e3b0-41d6-b9f5-97de4ca4da9f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612673,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d86174e3-e3b0-41d6-b9f5-97de4ca4da9f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612673,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"d86174e3-e3b0-41d6-b9f5-97de4ca4da9f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612642,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"2f9f8923-a6e3-4e5b-a1ae-cdea42bb3cda\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612642} {\"correlation_id\":\"2f9f8923-a6e3-4e5b-a1ae-cdea42bb3cda\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612642,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2f9f8923-a6e3-4e5b-a1ae-cdea42bb3cda\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612642,\"participants\":[{\"id\":999935,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":999936,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"2f9f8923-a6e3-4e5b-a1ae-cdea42bb3cda\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2f9f8923-a6e3-4e5b-a1ae-cdea42bb3cda\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2f9f8923-a6e3-4e5b-a1ae-cdea42bb3cda\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"2f9f8923-a6e3-4e5b-a1ae-cdea42bb3cda\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"2f9f8923-a6e3-4e5b-a1ae-cdea42bb3cda\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"2f9f8923-a6e3-4e5b-a1ae-cdea42bb3cda\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612642,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"2f9f8923-a6e3-4e5b-a1ae-cdea42bb3cda\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612642,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"2f9f8923-a6e3-4e5b-a1ae-cdea42bb3cda\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612642} {\"correlation_id\":\"2f9f8923-a6e3-4e5b-a1ae-cdea42bb3cda\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612642,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2f9f8923-a6e3-4e5b-a1ae-cdea42bb3cda\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612642,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"2f9f8923-a6e3-4e5b-a1ae-cdea42bb3cda\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612598,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612598} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612598,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612598,\"participants\":[{\"id\":999857,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999858,\"user_id\":206,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":243,\"contact_id\":4491,\"owner_id\":206} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":243,\"contact_id\":4491} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":243,\"contact_id\":4491,\"opportunity_id\":276} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612598,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612598,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612598} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612598,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612598,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":5.94,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"6d49ffdc-2ed7-4eae-a1ee-e25ca95bbea8\",\"trace_id\":\"906573b5-005c-4820-8a32-3b0703ea86dd\"}\n[2026-05-11 11:09:28] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612597,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"c69a3a24-bab5-4d56-887b-01111944b3a2\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612597} {\"correlation_id\":\"c69a3a24-bab5-4d56-887b-01111944b3a2\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612597,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"c69a3a24-bab5-4d56-887b-01111944b3a2\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612597,\"participants\":[{\"id\":999855,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999856,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null}]} {\"correlation_id\":\"c69a3a24-bab5-4d56-887b-01111944b3a2\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"c69a3a24-bab5-4d56-887b-01111944b3a2\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"c69a3a24-bab5-4d56-887b-01111944b3a2\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"c69a3a24-bab5-4d56-887b-01111944b3a2\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"c69a3a24-bab5-4d56-887b-01111944b3a2\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612597,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"c69a3a24-bab5-4d56-887b-01111944b3a2\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"c69a3a24-bab5-4d56-887b-01111944b3a2\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612597,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"c69a3a24-bab5-4d56-887b-01111944b3a2\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612597} {\"correlation_id\":\"c69a3a24-bab5-4d56-887b-01111944b3a2\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612597,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"c69a3a24-bab5-4d56-887b-01111944b3a2\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612597,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"c69a3a24-bab5-4d56-887b-01111944b3a2\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612596,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"0da9fc28-653b-406f-bafe-5d78010cb3da\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612596} {\"correlation_id\":\"0da9fc28-653b-406f-bafe-5d78010cb3da\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612596,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0da9fc28-653b-406f-bafe-5d78010cb3da\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612596,\"participants\":[{\"id\":999853,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999854,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null}]} {\"correlation_id\":\"0da9fc28-653b-406f-bafe-5d78010cb3da\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0da9fc28-653b-406f-bafe-5d78010cb3da\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0da9fc28-653b-406f-bafe-5d78010cb3da\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0da9fc28-653b-406f-bafe-5d78010cb3da\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0da9fc28-653b-406f-bafe-5d78010cb3da\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612596,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"0da9fc28-653b-406f-bafe-5d78010cb3da\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"0da9fc28-653b-406f-bafe-5d78010cb3da\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612596,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"0da9fc28-653b-406f-bafe-5d78010cb3da\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612596} {\"correlation_id\":\"0da9fc28-653b-406f-bafe-5d78010cb3da\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612596,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0da9fc28-653b-406f-bafe-5d78010cb3da\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612596,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"0da9fc28-653b-406f-bafe-5d78010cb3da\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612595,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"f7dd9c18-1f48-4adc-b2a2-a5e768444dfd\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612595} {\"correlation_id\":\"f7dd9c18-1f48-4adc-b2a2-a5e768444dfd\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612595,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"f7dd9c18-1f48-4adc-b2a2-a5e768444dfd\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612595,\"participants\":[{\"id\":999851,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999852,\"user_id\":206,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"f7dd9c18-1f48-4adc-b2a2-a5e768444dfd\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f7dd9c18-1f48-4adc-b2a2-a5e768444dfd\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f7dd9c18-1f48-4adc-b2a2-a5e768444dfd\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"f7dd9c18-1f48-4adc-b2a2-a5e768444dfd\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"f7dd9c18-1f48-4adc-b2a2-a5e768444dfd\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"f7dd9c18-1f48-4adc-b2a2-a5e768444dfd\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612595,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"f7dd9c18-1f48-4adc-b2a2-a5e768444dfd\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612595,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"f7dd9c18-1f48-4adc-b2a2-a5e768444dfd\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612595} {\"correlation_id\":\"f7dd9c18-1f48-4adc-b2a2-a5e768444dfd\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612595,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"f7dd9c18-1f48-4adc-b2a2-a5e768444dfd\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612595,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"f7dd9c18-1f48-4adc-b2a2-a5e768444dfd\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612594,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"4dacaa76-fc8b-462e-95ae-b74602d62a8f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612594} {\"correlation_id\":\"4dacaa76-fc8b-462e-95ae-b74602d62a8f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612594,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4dacaa76-fc8b-462e-95ae-b74602d62a8f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612594,\"participants\":[{\"id\":999849,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999850,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null}]} {\"correlation_id\":\"4dacaa76-fc8b-462e-95ae-b74602d62a8f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4dacaa76-fc8b-462e-95ae-b74602d62a8f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4dacaa76-fc8b-462e-95ae-b74602d62a8f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"4dacaa76-fc8b-462e-95ae-b74602d62a8f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"4dacaa76-fc8b-462e-95ae-b74602d62a8f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612594,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"4dacaa76-fc8b-462e-95ae-b74602d62a8f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"4dacaa76-fc8b-462e-95ae-b74602d62a8f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612594,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"4dacaa76-fc8b-462e-95ae-b74602d62a8f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612594} {\"correlation_id\":\"4dacaa76-fc8b-462e-95ae-b74602d62a8f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612594,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4dacaa76-fc8b-462e-95ae-b74602d62a8f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612594,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"4dacaa76-fc8b-462e-95ae-b74602d62a8f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612593,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"0845a766-3bc8-4303-83dc-9f0e57d46a44\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612593} {\"correlation_id\":\"0845a766-3bc8-4303-83dc-9f0e57d46a44\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612593,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0845a766-3bc8-4303-83dc-9f0e57d46a44\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612593,\"participants\":[{\"id\":999847,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999848,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null}]} {\"correlation_id\":\"0845a766-3bc8-4303-83dc-9f0e57d46a44\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0845a766-3bc8-4303-83dc-9f0e57d46a44\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0845a766-3bc8-4303-83dc-9f0e57d46a44\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0845a766-3bc8-4303-83dc-9f0e57d46a44\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0845a766-3bc8-4303-83dc-9f0e57d46a44\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612593,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"0845a766-3bc8-4303-83dc-9f0e57d46a44\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"0845a766-3bc8-4303-83dc-9f0e57d46a44\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612593,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"0845a766-3bc8-4303-83dc-9f0e57d46a44\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612593} {\"correlation_id\":\"0845a766-3bc8-4303-83dc-9f0e57d46a44\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612593,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0845a766-3bc8-4303-83dc-9f0e57d46a44\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612593,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"0845a766-3bc8-4303-83dc-9f0e57d46a44\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612592,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"315733d6-e316-4fb7-9ab6-c38b0bc2a394\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612592} {\"correlation_id\":\"315733d6-e316-4fb7-9ab6-c38b0bc2a394\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612592,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"315733d6-e316-4fb7-9ab6-c38b0bc2a394\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612592,\"participants\":[{\"id\":999845,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999846,\"user_id\":206,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"315733d6-e316-4fb7-9ab6-c38b0bc2a394\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"315733d6-e316-4fb7-9ab6-c38b0bc2a394\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"315733d6-e316-4fb7-9ab6-c38b0bc2a394\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"315733d6-e316-4fb7-9ab6-c38b0bc2a394\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"315733d6-e316-4fb7-9ab6-c38b0bc2a394\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"315733d6-e316-4fb7-9ab6-c38b0bc2a394\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612592,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"315733d6-e316-4fb7-9ab6-c38b0bc2a394\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612592,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"315733d6-e316-4fb7-9ab6-c38b0bc2a394\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612592} {\"correlation_id\":\"315733d6-e316-4fb7-9ab6-c38b0bc2a394\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612592,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"315733d6-e316-4fb7-9ab6-c38b0bc2a394\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612592,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"315733d6-e316-4fb7-9ab6-c38b0bc2a394\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612591,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"a4f3cee6-628d-4ea1-afef-271709541a6f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612591} {\"correlation_id\":\"a4f3cee6-628d-4ea1-afef-271709541a6f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612591,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a4f3cee6-628d-4ea1-afef-271709541a6f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612591,\"participants\":[{\"id\":999843,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999844,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null}]} {\"correlation_id\":\"a4f3cee6-628d-4ea1-afef-271709541a6f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a4f3cee6-628d-4ea1-afef-271709541a6f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a4f3cee6-628d-4ea1-afef-271709541a6f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"a4f3cee6-628d-4ea1-afef-271709541a6f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"a4f3cee6-628d-4ea1-afef-271709541a6f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612591,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"a4f3cee6-628d-4ea1-afef-271709541a6f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"a4f3cee6-628d-4ea1-afef-271709541a6f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612591,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"a4f3cee6-628d-4ea1-afef-271709541a6f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612591} {\"correlation_id\":\"a4f3cee6-628d-4ea1-afef-271709541a6f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612591,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a4f3cee6-628d-4ea1-afef-271709541a6f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612591,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"a4f3cee6-628d-4ea1-afef-271709541a6f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612590,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"dfa94946-5871-4106-8e8f-5e7a418e64ae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612590} {\"correlation_id\":\"dfa94946-5871-4106-8e8f-5e7a418e64ae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612590,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"dfa94946-5871-4106-8e8f-5e7a418e64ae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612590,\"participants\":[{\"id\":999841,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999842,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null}]} {\"correlation_id\":\"dfa94946-5871-4106-8e8f-5e7a418e64ae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"dfa94946-5871-4106-8e8f-5e7a418e64ae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"dfa94946-5871-4106-8e8f-5e7a418e64ae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"dfa94946-5871-4106-8e8f-5e7a418e64ae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"dfa94946-5871-4106-8e8f-5e7a418e64ae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612590,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"dfa94946-5871-4106-8e8f-5e7a418e64ae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"dfa94946-5871-4106-8e8f-5e7a418e64ae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612590,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"dfa94946-5871-4106-8e8f-5e7a418e64ae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612590} {\"correlation_id\":\"dfa94946-5871-4106-8e8f-5e7a418e64ae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612590,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"dfa94946-5871-4106-8e8f-5e7a418e64ae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612590,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"dfa94946-5871-4106-8e8f-5e7a418e64ae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612589,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"92666ef7-2d6e-4056-9d87-23df1bc694b1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612589} {\"correlation_id\":\"92666ef7-2d6e-4056-9d87-23df1bc694b1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612589,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"92666ef7-2d6e-4056-9d87-23df1bc694b1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612589,\"participants\":[{\"id\":999839,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999840,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null}]} {\"correlation_id\":\"92666ef7-2d6e-4056-9d87-23df1bc694b1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"92666ef7-2d6e-4056-9d87-23df1bc694b1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"92666ef7-2d6e-4056-9d87-23df1bc694b1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"92666ef7-2d6e-4056-9d87-23df1bc694b1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"92666ef7-2d6e-4056-9d87-23df1bc694b1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612589,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"92666ef7-2d6e-4056-9d87-23df1bc694b1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"92666ef7-2d6e-4056-9d87-23df1bc694b1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612589,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"92666ef7-2d6e-4056-9d87-23df1bc694b1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612589} {\"correlation_id\":\"92666ef7-2d6e-4056-9d87-23df1bc694b1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612589,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"92666ef7-2d6e-4056-9d87-23df1bc694b1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612589,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"92666ef7-2d6e-4056-9d87-23df1bc694b1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612588,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"7441c20c-f1d3-4310-a3a7-2c1aad9bbe25\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612588} {\"correlation_id\":\"7441c20c-f1d3-4310-a3a7-2c1aad9bbe25\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612588,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7441c20c-f1d3-4310-a3a7-2c1aad9bbe25\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612588,\"participants\":[{\"id\":999837,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999838,\"user_id\":206,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"7441c20c-f1d3-4310-a3a7-2c1aad9bbe25\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7441c20c-f1d3-4310-a3a7-2c1aad9bbe25\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7441c20c-f1d3-4310-a3a7-2c1aad9bbe25\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7441c20c-f1d3-4310-a3a7-2c1aad9bbe25\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"7441c20c-f1d3-4310-a3a7-2c1aad9bbe25\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"7441c20c-f1d3-4310-a3a7-2c1aad9bbe25\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612588,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"7441c20c-f1d3-4310-a3a7-2c1aad9bbe25\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612588,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"7441c20c-f1d3-4310-a3a7-2c1aad9bbe25\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612588} {\"correlation_id\":\"7441c20c-f1d3-4310-a3a7-2c1aad9bbe25\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612588,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7441c20c-f1d3-4310-a3a7-2c1aad9bbe25\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612588,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"7441c20c-f1d3-4310-a3a7-2c1aad9bbe25\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612587,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"b6283377-e461-4841-90a6-bd9b51c31e78\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612587} {\"correlation_id\":\"b6283377-e461-4841-90a6-bd9b51c31e78\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612587,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b6283377-e461-4841-90a6-bd9b51c31e78\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612587,\"participants\":[{\"id\":999835,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999836,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null}]} {\"correlation_id\":\"b6283377-e461-4841-90a6-bd9b51c31e78\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b6283377-e461-4841-90a6-bd9b51c31e78\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b6283377-e461-4841-90a6-bd9b51c31e78\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b6283377-e461-4841-90a6-bd9b51c31e78\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"b6283377-e461-4841-90a6-bd9b51c31e78\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612587,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"b6283377-e461-4841-90a6-bd9b51c31e78\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"b6283377-e461-4841-90a6-bd9b51c31e78\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612587,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"b6283377-e461-4841-90a6-bd9b51c31e78\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612587} {\"correlation_id\":\"b6283377-e461-4841-90a6-bd9b51c31e78\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612587,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b6283377-e461-4841-90a6-bd9b51c31e78\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612587,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"b6283377-e461-4841-90a6-bd9b51c31e78\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612586,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"d0ddb01c-2b21-4989-998a-fa52e7affced\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612586} {\"correlation_id\":\"d0ddb01c-2b21-4989-998a-fa52e7affced\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612586,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d0ddb01c-2b21-4989-998a-fa52e7affced\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612586,\"participants\":[{\"id\":999833,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999834,\"user_id\":206,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"d0ddb01c-2b21-4989-998a-fa52e7affced\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d0ddb01c-2b21-4989-998a-fa52e7affced\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d0ddb01c-2b21-4989-998a-fa52e7affced\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"d0ddb01c-2b21-4989-998a-fa52e7affced\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"d0ddb01c-2b21-4989-998a-fa52e7affced\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"d0ddb01c-2b21-4989-998a-fa52e7affced\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612586,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"d0ddb01c-2b21-4989-998a-fa52e7affced\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612586,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"d0ddb01c-2b21-4989-998a-fa52e7affced\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612586} {\"correlation_id\":\"d0ddb01c-2b21-4989-998a-fa52e7affced\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612586,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d0ddb01c-2b21-4989-998a-fa52e7affced\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612586,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"d0ddb01c-2b21-4989-998a-fa52e7affced\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.NOTICE: Monitoring start {\"correlation_id\":\"772cf24f-66f8-49c0-8ef5-e6c1d128fccb\",\"trace_id\":\"2d950f5a-3a35-4a8b-b33b-4d129409925b\"}\n[2026-05-11 11:09:31] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612585,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"cef11ffe-61af-425d-b899-399323237a47\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612585} {\"correlation_id\":\"cef11ffe-61af-425d-b899-399323237a47\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612585,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cef11ffe-61af-425d-b899-399323237a47\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.NOTICE: Monitoring end {\"correlation_id\":\"772cf24f-66f8-49c0-8ef5-e6c1d128fccb\",\"trace_id\":\"2d950f5a-3a35-4a8b-b33b-4d129409925b\"}\n[2026-05-11 11:09:31] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612585,\"participants\":[{\"id\":999831,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999832,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null}]} {\"correlation_id\":\"cef11ffe-61af-425d-b899-399323237a47\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cef11ffe-61af-425d-b899-399323237a47\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cef11ffe-61af-425d-b899-399323237a47\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cef11ffe-61af-425d-b899-399323237a47\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"cef11ffe-61af-425d-b899-399323237a47\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612585,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"cef11ffe-61af-425d-b899-399323237a47\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"cef11ffe-61af-425d-b899-399323237a47\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612585,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"cef11ffe-61af-425d-b899-399323237a47\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612585} {\"correlation_id\":\"cef11ffe-61af-425d-b899-399323237a47\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612585,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cef11ffe-61af-425d-b899-399323237a47\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612585,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"cef11ffe-61af-425d-b899-399323237a47\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612584,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"2aa83935-5a46-4a3d-98d7-acfcf3f3f6cb\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612584} {\"correlation_id\":\"2aa83935-5a46-4a3d-98d7-acfcf3f3f6cb\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612584,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2aa83935-5a46-4a3d-98d7-acfcf3f3f6cb\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612584,\"participants\":[{\"id\":999829,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999830,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null}]} {\"correlation_id\":\"2aa83935-5a46-4a3d-98d7-acfcf3f3f6cb\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2aa83935-5a46-4a3d-98d7-acfcf3f3f6cb\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2aa83935-5a46-4a3d-98d7-acfcf3f3f6cb\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"2aa83935-5a46-4a3d-98d7-acfcf3f3f6cb\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"2aa83935-5a46-4a3d-98d7-acfcf3f3f6cb\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612584,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"2aa83935-5a46-4a3d-98d7-acfcf3f3f6cb\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"2aa83935-5a46-4a3d-98d7-acfcf3f3f6cb\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612584,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"2aa83935-5a46-4a3d-98d7-acfcf3f3f6cb\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612584} {\"correlation_id\":\"2aa83935-5a46-4a3d-98d7-acfcf3f3f6cb\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612584,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2aa83935-5a46-4a3d-98d7-acfcf3f3f6cb\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612584,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"2aa83935-5a46-4a3d-98d7-acfcf3f3f6cb\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612583,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"04dd4d55-bdb2-4f42-9fbd-8a132707b475\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612583} {\"correlation_id\":\"04dd4d55-bdb2-4f42-9fbd-8a132707b475\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612583,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"04dd4d55-bdb2-4f42-9fbd-8a132707b475\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612583,\"participants\":[{\"id\":999827,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999828,\"user_id\":206,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"04dd4d55-bdb2-4f42-9fbd-8a132707b475\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"04dd4d55-bdb2-4f42-9fbd-8a132707b475\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"04dd4d55-bdb2-4f42-9fbd-8a132707b475\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"04dd4d55-bdb2-4f42-9fbd-8a132707b475\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"04dd4d55-bdb2-4f42-9fbd-8a132707b475\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"04dd4d55-bdb2-4f42-9fbd-8a132707b475\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612583,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"04dd4d55-bdb2-4f42-9fbd-8a132707b475\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612583,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"04dd4d55-bdb2-4f42-9fbd-8a132707b475\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612583} {\"correlation_id\":\"04dd4d55-bdb2-4f42-9fbd-8a132707b475\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612583,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"04dd4d55-bdb2-4f42-9fbd-8a132707b475\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612583,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"04dd4d55-bdb2-4f42-9fbd-8a132707b475\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612582,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"58e7116b-76f4-4698-a629-ff1eb613d93e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612582} {\"correlation_id\":\"58e7116b-76f4-4698-a629-ff1eb613d93e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612582,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"58e7116b-76f4-4698-a629-ff1eb613d93e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612582,\"participants\":[{\"id\":999825,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999826,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null}]} {\"correlation_id\":\"58e7116b-76f4-4698-a629-ff1eb613d93e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"58e7116b-76f4-4698-a629-ff1eb613d93e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"58e7116b-76f4-4698-a629-ff1eb613d93e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"58e7116b-76f4-4698-a629-ff1eb613d93e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"58e7116b-76f4-4698-a629-ff1eb613d93e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612582,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"58e7116b-76f4-4698-a629-ff1eb613d93e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"58e7116b-76f4-4698-a629-ff1eb613d93e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612582,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"58e7116b-76f4-4698-a629-ff1eb613d93e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612582} {\"correlation_id\":\"58e7116b-76f4-4698-a629-ff1eb613d93e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612582,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"58e7116b-76f4-4698-a629-ff1eb613d93e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612582,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"58e7116b-76f4-4698-a629-ff1eb613d93e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612581,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"b1cdf1eb-a77f-4062-bc7a-52e75ec005f1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612581} {\"correlation_id\":\"b1cdf1eb-a77f-4062-bc7a-52e75ec005f1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612581,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b1cdf1eb-a77f-4062-bc7a-52e75ec005f1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612581,\"participants\":[{\"id\":999823,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999824,\"user_id\":206,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"b1cdf1eb-a77f-4062-bc7a-52e75ec005f1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b1cdf1eb-a77f-4062-bc7a-52e75ec005f1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b1cdf1eb-a77f-4062-bc7a-52e75ec005f1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b1cdf1eb-a77f-4062-bc7a-52e75ec005f1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"b1cdf1eb-a77f-4062-bc7a-52e75ec005f1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"b1cdf1eb-a77f-4062-bc7a-52e75ec005f1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612581,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"b1cdf1eb-a77f-4062-bc7a-52e75ec005f1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612581,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"b1cdf1eb-a77f-4062-bc7a-52e75ec005f1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612581} {\"correlation_id\":\"b1cdf1eb-a77f-4062-bc7a-52e75ec005f1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612581,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b1cdf1eb-a77f-4062-bc7a-52e75ec005f1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612581,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"b1cdf1eb-a77f-4062-bc7a-52e75ec005f1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612565,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"4531fd00-7875-4334-b3c2-407d31ec1255\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612565} {\"correlation_id\":\"4531fd00-7875-4334-b3c2-407d31ec1255\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612565,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4531fd00-7875-4334-b3c2-407d31ec1255\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612565,\"participants\":[{\"id\":999789,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999790,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null}]} {\"correlation_id\":\"4531fd00-7875-4334-b3c2-407d31ec1255\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4531fd00-7875-4334-b3c2-407d31ec1255\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4531fd00-7875-4334-b3c2-407d31ec1255\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"4531fd00-7875-4334-b3c2-407d31ec1255\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"4531fd00-7875-4334-b3c2-407d31ec1255\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612565,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"4531fd00-7875-4334-b3c2-407d31ec1255\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"4531fd00-7875-4334-b3c2-407d31ec1255\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612565,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"4531fd00-7875-4334-b3c2-407d31ec1255\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612565} {\"correlation_id\":\"4531fd00-7875-4334-b3c2-407d31ec1255\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612565,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4531fd00-7875-4334-b3c2-407d31ec1255\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612565,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"4531fd00-7875-4334-b3c2-407d31ec1255\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612563,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34}} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612563} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612563,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612563,\"participants\":[{\"id\":999784,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999785,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null}]} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612563,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":206} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":244,\"contact_id\":4487} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":350} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612563,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612563} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612563,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612563,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612562,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"correlation_id\":\"096bc408-0a3f-43ef-9cf6-f9007ee7315c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612562} {\"correlation_id\":\"096bc408-0a3f-43ef-9cf6-f9007ee7315c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612562,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"096bc408-0a3f-43ef-9cf6-f9007ee7315c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612562,\"participants\":[{\"id\":999782,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":999783,\"user_id\":206,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"096bc408-0a3f-43ef-9cf6-f9007ee7315c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"096bc408-0a3f-43ef-9cf6-f9007ee7315c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"096bc408-0a3f-43ef-9cf6-f9007ee7315c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"096bc408-0a3f-43ef-9cf6-f9007ee7315c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"096bc408-0a3f-43ef-9cf6-f9007ee7315c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"447782589921@txt.staging.jiminny.com\"} {\"correlation_id\":\"096bc408-0a3f-43ef-9cf6-f9007ee7315c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:34] local.INFO: [Hubspot] Failed to fetch contact {\"email\":\"447782589921@txt.staging.jiminny.com\",\"reason\":\"[404] Client error: `GET https://api.hubapi.com/crm/v3/objects/contacts/447782589921%40txt.staging.jiminny.com?properties=email%2Cfirstname%2Clastname%2Ccountry%2Cphone%2Cmobilephone%2Cjobtitle%2Chubspot_owner_id%2Cassociatedcompanyid%2Cphoto&archived=0&idProperty=email` resulted in a `404 Not Found` response\"} {\"correlation_id\":\"096bc408-0a3f-43ef-9cf6-f9007ee7315c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:34] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {\"identifier_type\":\"email\",\"identifier\":\"447782589921@txt.staging.jiminny.com\"} {\"correlation_id\":\"096bc408-0a3f-43ef-9cf6-f9007ee7315c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:34] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":10,\"delay\":14} {\"correlation_id\":\"096bc408-0a3f-43ef-9cf6-f9007ee7315c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:34] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612561,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"correlation_id\":\"cded6bdb-0e7c-4baa-b280-5798e81b236a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:34] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612561} {\"correlation_id\":\"cded6bdb-0e7c-4baa-b280-5798e81b236a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:34] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612561,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cded6bdb-0e7c-4baa-b280-5798e81b236a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:34] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612561,\"participants\":[{\"id\":999780,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999781,\"user_id\":null,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"cded6bdb-0e7c-4baa-b280-5798e81b236a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:34] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cded6bdb-0e7c-4baa-b280-5798e81b236a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:34] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cded6bdb-0e7c-4baa-b280-5798e81b236a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:34] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cded6bdb-0e7c-4baa-b280-5798e81b236a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:34] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"cded6bdb-0e7c-4baa-b280-5798e81b236a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:34] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612561,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"cded6bdb-0e7c-4baa-b280-5798e81b236a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:34] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"447700174614.447782589921.OeREojLVnk@txt.staging.jiminny.com\"} {\"correlation_id\":\"cded6bdb-0e7c-4baa-b280-5798e81b236a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [Hubspot] Failed to fetch contact {\"email\":\"447700174614.447782589921.OeREojLVnk@txt.staging.jiminny.com\",\"reason\":\"[404] Client error: `GET https://api.hubapi.com/crm/v3/objects/contacts/447700174614.447782589921.OeREojLVnk%40txt.staging.jiminny.com?properties=email%2Cfirstname%2Clastname%2Ccountry%2Cphone%2Cmobilephone%2Cjobtitle%2Chubspot_owner_id%2Cassociatedcompanyid%2Cphoto&archived=0&idProperty=email` resulted in a `404 Not Found` response\"} {\"correlation_id\":\"cded6bdb-0e7c-4baa-b280-5798e81b236a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {\"identifier_type\":\"email\",\"identifier\":\"447700174614.447782589921.OeREojLVnk@txt.staging.jiminny.com\"} {\"correlation_id\":\"cded6bdb-0e7c-4baa-b280-5798e81b236a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":10,\"delay\":10} {\"correlation_id\":\"cded6bdb-0e7c-4baa-b280-5798e81b236a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612560,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"correlation_id\":\"53ef5599-df42-4f3d-90a1-8f89c19435e4\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612560} {\"correlation_id\":\"53ef5599-df42-4f3d-90a1-8f89c19435e4\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612560,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"53ef5599-df42-4f3d-90a1-8f89c19435e4\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612560,\"participants\":[{\"id\":999778,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":999779,\"user_id\":206,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"53ef5599-df42-4f3d-90a1-8f89c19435e4\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"53ef5599-df42-4f3d-90a1-8f89c19435e4\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"53ef5599-df42-4f3d-90a1-8f89c19435e4\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"53ef5599-df42-4f3d-90a1-8f89c19435e4\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"53ef5599-df42-4f3d-90a1-8f89c19435e4\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"447782589921@txt.staging.jiminny.com\"} {\"correlation_id\":\"53ef5599-df42-4f3d-90a1-8f89c19435e4\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"447782589921@txt.staging.jiminny.com\"} {\"correlation_id\":\"53ef5599-df42-4f3d-90a1-8f89c19435e4\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":10,\"delay\":12} {\"correlation_id\":\"53ef5599-df42-4f3d-90a1-8f89c19435e4\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612559,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34}} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612559} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612559,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612559,\"participants\":[{\"id\":999776,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999777,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612559,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":69,\"contact_id\":97,\"owner_id\":206} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":69,\"contact_id\":97} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":69,\"contact_id\":97,\"opportunity_id\":5011} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":2.07,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"6d49ffdc-2ed7-4eae-a1ee-e25ca95bbea8\",\"trace_id\":\"906573b5-005c-4820-8a32-3b0703ea86dd\"}\n[2026-05-11 11:09:35] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612559,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612559} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612559,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612559,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612558,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34}} {\"correlation_id\":\"34a7b1c6-be3b-4790-a04c-0311e25dadc8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612558} {\"correlation_id\":\"34a7b1c6-be3b-4790-a04c-0311e25dadc8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612558,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"34a7b1c6-be3b-4790-a04c-0311e25dadc8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612558,\"participants\":[{\"id\":999774,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999775,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"34a7b1c6-be3b-4790-a04c-0311e25dadc8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"34a7b1c6-be3b-4790-a04c-0311e25dadc8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"34a7b1c6-be3b-4790-a04c-0311e25dadc8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"34a7b1c6-be3b-4790-a04c-0311e25dadc8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"34a7b1c6-be3b-4790-a04c-0311e25dadc8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612558,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"34a7b1c6-be3b-4790-a04c-0311e25dadc8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"34a7b1c6-be3b-4790-a04c-0311e25dadc8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612558,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"34a7b1c6-be3b-4790-a04c-0311e25dadc8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612558} {\"correlation_id\":\"34a7b1c6-be3b-4790-a04c-0311e25dadc8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612558,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"34a7b1c6-be3b-4790-a04c-0311e25dadc8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612558,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34} {\"correlation_id\":\"34a7b1c6-be3b-4790-a04c-0311e25dadc8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612557,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34}} {\"correlation_id\":\"26d4d3d0-ebf8-44ad-a48f-24728e5539e0\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612557} {\"correlation_id\":\"26d4d3d0-ebf8-44ad-a48f-24728e5539e0\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612557,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"26d4d3d0-ebf8-44ad-a48f-24728e5539e0\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612557,\"participants\":[{\"id\":999772,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999773,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"26d4d3d0-ebf8-44ad-a48f-24728e5539e0\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"26d4d3d0-ebf8-44ad-a48f-24728e5539e0\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"26d4d3d0-ebf8-44ad-a48f-24728e5539e0\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"26d4d3d0-ebf8-44ad-a48f-24728e5539e0\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"26d4d3d0-ebf8-44ad-a48f-24728e5539e0\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612557,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"26d4d3d0-ebf8-44ad-a48f-24728e5539e0\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"26d4d3d0-ebf8-44ad-a48f-24728e5539e0\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612557,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"26d4d3d0-ebf8-44ad-a48f-24728e5539e0\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612557} {\"correlation_id\":\"26d4d3d0-ebf8-44ad-a48f-24728e5539e0\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612557,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"26d4d3d0-ebf8-44ad-a48f-24728e5539e0\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612557,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34} {\"correlation_id\":\"26d4d3d0-ebf8-44ad-a48f-24728e5539e0\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612556,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34}} {\"correlation_id\":\"406b7ad3-26d6-4b1b-9ad7-fff68622b149\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612556} {\"correlation_id\":\"406b7ad3-26d6-4b1b-9ad7-fff68622b149\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612556,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"406b7ad3-26d6-4b1b-9ad7-fff68622b149\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612556,\"participants\":[{\"id\":999770,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999771,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"406b7ad3-26d6-4b1b-9ad7-fff68622b149\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"406b7ad3-26d6-4b1b-9ad7-fff68622b149\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"406b7ad3-26d6-4b1b-9ad7-fff68622b149\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"406b7ad3-26d6-4b1b-9ad7-fff68622b149\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"406b7ad3-26d6-4b1b-9ad7-fff68622b149\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612556,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"406b7ad3-26d6-4b1b-9ad7-fff68622b149\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"406b7ad3-26d6-4b1b-9ad7-fff68622b149\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612556,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"406b7ad3-26d6-4b1b-9ad7-fff68622b149\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612556} {\"correlation_id\":\"406b7ad3-26d6-4b1b-9ad7-fff68622b149\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612556,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"406b7ad3-26d6-4b1b-9ad7-fff68622b149\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612556,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34} {\"correlation_id\":\"406b7ad3-26d6-4b1b-9ad7-fff68622b149\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612555,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34}} {\"correlation_id\":\"c15b7703-f17b-48e7-bf38-122448d79345\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612555} {\"correlation_id\":\"c15b7703-f17b-48e7-bf38-122448d79345\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612555,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"c15b7703-f17b-48e7-bf38-122448d79345\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612555,\"participants\":[{\"id\":999768,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999769,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"c15b7703-f17b-48e7-bf38-122448d79345\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"c15b7703-f17b-48e7-bf38-122448d79345\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"c15b7703-f17b-48e7-bf38-122448d79345\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"c15b7703-f17b-48e7-bf38-122448d79345\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"c15b7703-f17b-48e7-bf38-122448d79345\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612555,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"c15b7703-f17b-48e7-bf38-122448d79345\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"c15b7703-f17b-48e7-bf38-122448d79345\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612555,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"c15b7703-f17b-48e7-bf38-122448d79345\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612555} {\"correlation_id\":\"c15b7703-f17b-48e7-bf38-122448d79345\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612555,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"c15b7703-f17b-48e7-bf38-122448d79345\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612555,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34} {\"correlation_id\":\"c15b7703-f17b-48e7-bf38-122448d79345\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612554,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34}} {\"correlation_id\":\"c9cce71b-d96d-4117-b9fb-bb9672ae7c2b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612554} {\"correlation_id\":\"c9cce71b-d96d-4117-b9fb-bb9672ae7c2b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612554,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"c9cce71b-d96d-4117-b9fb-bb9672ae7c2b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612554,\"participants\":[{\"id\":999766,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999767,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"c9cce71b-d96d-4117-b9fb-bb9672ae7c2b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"c9cce71b-d96d-4117-b9fb-bb9672ae7c2b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"c9cce71b-d96d-4117-b9fb-bb9672ae7c2b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"c9cce71b-d96d-4117-b9fb-bb9672ae7c2b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"c9cce71b-d96d-4117-b9fb-bb9672ae7c2b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612554,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"c9cce71b-d96d-4117-b9fb-bb9672ae7c2b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"c9cce71b-d96d-4117-b9fb-bb9672ae7c2b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612554,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"c9cce71b-d96d-4117-b9fb-bb9672ae7c2b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612554} {\"correlation_id\":\"c9cce71b-d96d-4117-b9fb-bb9672ae7c2b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612554,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"c9cce71b-d96d-4117-b9fb-bb9672ae7c2b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612554,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34} {\"correlation_id\":\"c9cce71b-d96d-4117-b9fb-bb9672ae7c2b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612553,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34}} {\"correlation_id\":\"ffd2857e-be14-4ab1-8533-93b20116db02\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612553} {\"correlation_id\":\"ffd2857e-be14-4ab1-8533-93b20116db02\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612553,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ffd2857e-be14-4ab1-8533-93b20116db02\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612553,\"participants\":[{\"id\":999764,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999765,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"ffd2857e-be14-4ab1-8533-93b20116db02\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ffd2857e-be14-4ab1-8533-93b20116db02\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ffd2857e-be14-4ab1-8533-93b20116db02\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ffd2857e-be14-4ab1-8533-93b20116db02\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ffd2857e-be14-4ab1-8533-93b20116db02\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612553,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"ffd2857e-be14-4ab1-8533-93b20116db02\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"ffd2857e-be14-4ab1-8533-93b20116db02\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612553,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"ffd2857e-be14-4ab1-8533-93b20116db02\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612553} {\"correlation_id\":\"ffd2857e-be14-4ab1-8533-93b20116db02\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612553,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ffd2857e-be14-4ab1-8533-93b20116db02\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612553,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34} {\"correlation_id\":\"ffd2857e-be14-4ab1-8533-93b20116db02\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612552,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34}} {\"correlation_id\":\"7942c5ee-3b2d-4f76-8728-d5343cd7b02e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612552} {\"correlation_id\":\"7942c5ee-3b2d-4f76-8728-d5343cd7b02e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612552,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7942c5ee-3b2d-4f76-8728-d5343cd7b02e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612552,\"participants\":[{\"id\":999762,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999763,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"7942c5ee-3b2d-4f76-8728-d5343cd7b02e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7942c5ee-3b2d-4f76-8728-d5343cd7b02e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7942c5ee-3b2d-4f76-8728-d5343cd7b02e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7942c5ee-3b2d-4f76-8728-d5343cd7b02e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"7942c5ee-3b2d-4f76-8728-d5343cd7b02e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612552,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"7942c5ee-3b2d-4f76-8728-d5343cd7b02e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"7942c5ee-3b2d-4f76-8728-d5343cd7b02e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612552,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"7942c5ee-3b2d-4f76-8728-d5343cd7b02e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612552} {\"correlation_id\":\"7942c5ee-3b2d-4f76-8728-d5343cd7b02e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612552,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7942c5ee-3b2d-4f76-8728-d5343cd7b02e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612552,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34} {\"correlation_id\":\"7942c5ee-3b2d-4f76-8728-d5343cd7b02e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612551,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34}} {\"correlation_id\":\"8068bb0d-ab6d-48ee-abe2-d6cd116aba26\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612551} {\"correlation_id\":\"8068bb0d-ab6d-48ee-abe2-d6cd116aba26\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612551,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8068bb0d-ab6d-48ee-abe2-d6cd116aba26\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612551,\"participants\":[{\"id\":999760,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999761,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"8068bb0d-ab6d-48ee-abe2-d6cd116aba26\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8068bb0d-ab6d-48ee-abe2-d6cd116aba26\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8068bb0d-ab6d-48ee-abe2-d6cd116aba26\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"8068bb0d-ab6d-48ee-abe2-d6cd116aba26\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"8068bb0d-ab6d-48ee-abe2-d6cd116aba26\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612551,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"8068bb0d-ab6d-48ee-abe2-d6cd116aba26\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"8068bb0d-ab6d-48ee-abe2-d6cd116aba26\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612551,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"8068bb0d-ab6d-48ee-abe2-d6cd116aba26\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612551} {\"correlation_id\":\"8068bb0d-ab6d-48ee-abe2-d6cd116aba26\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612551,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8068bb0d-ab6d-48ee-abe2-d6cd116aba26\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612551,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34} {\"correlation_id\":\"8068bb0d-ab6d-48ee-abe2-d6cd116aba26\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:37] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612550,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34}} {\"correlation_id\":\"36bdbff9-cfb6-43af-b7c4-f2caafa8e794\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:37] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612550} {\"correlation_id\":\"36bdbff9-cfb6-43af-b7c4-f2caafa8e794\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:37] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612550,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"36bdbff9-cfb6-43af-b7c4-f2caafa8e794\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:37] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612550,\"participants\":[{\"id\":999758,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999759,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"36bdbff9-cfb6-43af-b7c4-f2caafa8e794\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:37] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"36bdbff9-cfb6-43af-b7c4-f2caafa8e794\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:37] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"36bdbff9-cfb6-43af-b7c4-f2caafa8e794\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:37] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"36bdbff9-cfb6-43af-b7c4-f2caafa8e794\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:37] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"36bdbff9-cfb6-43af-b7c4-f2caafa8e794\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:37] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612550,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"36bdbff9-cfb6-43af-b7c4-f2caafa8e794\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:37] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"36bdbff9-cfb6-43af-b7c4-f2caafa8e794\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:37] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612550,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"36bdbff9-cfb6-43af-b7c4-f2caafa8e794\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:38] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612550} {\"correlation_id\":\"36bdbff9-cfb6-43af-b7c4-f2caafa8e794\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:38] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612550,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"36bdbff9-cfb6-43af-b7c4-f2caafa8e794\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:38] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612550,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34} {\"correlation_id\":\"36bdbff9-cfb6-43af-b7c4-f2caafa8e794\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:38] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612549,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34}} {\"correlation_id\":\"c2ff3c6c-7380-4c1c-a1f5-50044a473ac8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:38] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612549} {\"correlation_id\":\"c2ff3c6c-7380-4c1c-a1f5-50044a473ac8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:38] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612549,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"c2ff3c6c-7380-4c1c-a1f5-50044a473ac8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:38] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612549,\"participants\":[{\"id\":999756,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999757,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"c2ff3c6c-7380-4c1c-a1f5-50044a473ac8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:39] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"c2ff3c6c-7380-4c1c-a1f5-50044a473ac8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:39] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"c2ff3c6c-7380-4c1c-a1f5-50044a473ac8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:39] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"c2ff3c6c-7380-4c1c-a1f5-50044a473ac8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"c2ff3c6c-7380-4c1c-a1f5-50044a473ac8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:39] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612549,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"c2ff3c6c-7380-4c1c-a1f5-50044a473ac8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:39] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"c2ff3c6c-7380-4c1c-a1f5-50044a473ac8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:39] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612549,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"c2ff3c6c-7380-4c1c-a1f5-50044a473ac8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:39] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612549} {\"correlation_id\":\"c2ff3c6c-7380-4c1c-a1f5-50044a473ac8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612549,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"c2ff3c6c-7380-4c1c-a1f5-50044a473ac8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:39] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612549,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34} {\"correlation_id\":\"c2ff3c6c-7380-4c1c-a1f5-50044a473ac8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:40] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612365,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"a9faea34-163e-4d2a-8007-c903951e3b79\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612365} {\"correlation_id\":\"a9faea34-163e-4d2a-8007-c903951e3b79\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612365,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a9faea34-163e-4d2a-8007-c903951e3b79\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:40] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612365,\"participants\":[{\"id\":999563,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999564,\"user_id\":206,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"a9faea34-163e-4d2a-8007-c903951e3b79\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a9faea34-163e-4d2a-8007-c903951e3b79\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a9faea34-163e-4d2a-8007-c903951e3b79\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"a9faea34-163e-4d2a-8007-c903951e3b79\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"a9faea34-163e-4d2a-8007-c903951e3b79\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"a9faea34-163e-4d2a-8007-c903951e3b79\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:40] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612365,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"a9faea34-163e-4d2a-8007-c903951e3b79\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612365,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"a9faea34-163e-4d2a-8007-c903951e3b79\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612365} {\"correlation_id\":\"a9faea34-163e-4d2a-8007-c903951e3b79\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612365,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a9faea34-163e-4d2a-8007-c903951e3b79\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:41] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612365,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"a9faea34-163e-4d2a-8007-c903951e3b79\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
6096521997372283730
|
-2556523036834395804
|
click
|
accessibility
|
NULL
|
Project: faVsco.js, menu
JY-20725-handle-HS-search Project: faVsco.js, menu
JY-20725-handle-HS-search-rate-limit, menu
Start Listening for PHP Debug Connections
HandleHubspotRateLimitTest
Run 'HandleHubspotRateLimitTest'
Debug 'HandleHubspotRateLimitTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
2
67
3
Previous Highlighted Error
Next Highlighted Error
<?php
declare(strict_types=1);
namespace Jiminny\Services\Crm\Hubspot;
use HubSpot\Client\Crm\Deals\ApiException as DealApiException;
use HubSpot\Client\Crm\Contacts\ApiException as ContactApiException;
use HubSpot\Client\Crm\Companies\ApiException as CompanyApiException;
use HubSpot\Client\Crm\Contacts\Model\SimplePublicObjectWithAssociations as ContactsWithAssociations;
use HubSpot\Client\Crm\Companies\Model\SimplePublicObjectWithAssociations as CompaniesWithAssociations;
use HubSpot\Client\Crm\Deals\Model\SimplePublicObjectWithAssociations as DealWithAssociations;
use HubSpot\Client\Crm\Objects\Model\SimplePublicObjectInput;
use HubSpot\Client\Crm\Objects\Model\SimplePublicObjectWithAssociations as ObjectWithAssociations;
use HubSpot\Client\Crm\Pipelines\Model\Error;
use HubSpot\Client\Crm\Pipelines\Model\PipelineStage;
use HubSpot\Client\Crm\Properties\Model\Property;
use HubSpot\Discovery\Discovery;
use Jiminny\Exceptions\CrmException;
use Jiminny\Exceptions\RateLimitException;
use Jiminny\Exceptions\SocialAccountTokenInvalidException;
use Jiminny\Jobs\Crm\NoteObject;
use Jiminny\Models\Crm\Field;
use Jiminny\Services\Crm\BaseClient;
use Jiminny\Services\Crm\Hubspot\DTO\Response\Owner;
use Jiminny\Services\SocialAccountService;
use SevenShores\Hubspot\Exceptions\BadRequest;
use SevenShores\Hubspot\Exceptions\HubspotException;
use SevenShores\Hubspot\Factory;
use SevenShores\Hubspot\Http\Response;
use Jiminny\Services\Crm\Hubspot\Pagination\HubspotPaginationService;
use Illuminate\Support\Facades\Redis;
use Throwable;
/**
* @phpstan-type CrmFieldOption array{id:string, label:string, value?:string}
*/
class Client extends BaseClient implements HubspotClientInterface
{
public const string MIN_API_VERSION = '2';
public const string BASE_URL = '[URL_WITH_CREDENTIALS] T
* @param callable(): T $apiCall
* @return T
*
* @throws RateLimitException
*/
private function executeRequest(callable $apiCall)
{
$cacheKey = $this->getRateLimitCacheKey();
$cachedRetryAfter = Redis::get($cacheKey);
if (is_string($cachedRetryAfter) && is_numeric($cachedRetryAfter)) {
throw new RateLimitException(
'Hubspot rate limit (cached circuit-breaker)',
(int) $cachedRetryAfter,
);
}
try {
return $apiCall();
} catch (Throwable $e) {
if ($this->isHubspotRateLimit($e)) {
$retryAfter = $this->parseRetryAfter($e);
Redis::setex($cacheKey, $retryAfter, (string) $retryAfter);
$this->log->warning('[Hubspot] Received 429 from API', [
'team_id' => $this->config->team_id,
'config_id' => $this->config->getId(),
'retry_after' => $retryAfter,
'reason' => $e->getMessage(),
]);
throw new RateLimitException('Hubspot returned 429', $retryAfter, $e);
}
throw $e;
}
}
private function getRateLimitCacheKey(): string
{
return sprintf('hubspot:ratelimit:portal:%d', $this->config->getId());
}
public function isHubspotRateLimit(Throwable $e): bool
{
if ($e instanceof BadRequest
|| $e instanceof DealApiException
|| $e instanceof ContactApiException
|| $e instanceof CompanyApiException
|| $e instanceof \GuzzleHttp\Exception\RequestException
) {
return (int) $e->getCode() === 429;
}
return false;
}
public function parseRetryAfter(Throwable $e): int
{
if (method_exists($e, 'getResponseHeaders')) {
$headers = $e->getResponseHeaders() ?: [];
$value = $headers['Retry-After'] ?? $headers['retry-after'] ?? null;
if (is_array($value)) {
$value = $value[0] ?? null;
}
if (is_numeric($value)) {
return (int) $value;
}
}
$message = strtolower($e->getMessage()($e));
if (str_contains($message, 'daily')) {
return 600;
}
if (str_contains($message, 'ten secondly')) {
return 10;
}
if (str_contains($message, 'secondly')) {
return 1;
}
$this->log->warning('[Hubspot] No retry-after header or known message, using default', [
'exception_class' => get_class($e),
'message' => $message,
]);
return 10;
}
public function parseMessage(Throwable $e): string
{
if (! method_exists($e, 'getResponseBody')) {
return '';
}
$body = $e->getResponseBody();
if (is_string($body)) {
$body = json_decode($body, true) ?? [];
}
if (! is_array($body)) {
return '';
}
return (string) ($body['message'] ?? '');
}
public function getMinimumApiVersion(): string
{
return self::MIN_API_VERSION;
}
public function getInstance(): Factory
{
return new Factory([
'key' => $this->accessToken,
'oauth2' => true,
'base_url' => $this->baseUrl,
]);
}
public function getNewInstance(): Discovery
{
return \HubSpot\Factory::createWithAccessToken($this->accessToken);
}
/**
* Secondly and daily limits for Hubspot API
*
* Product Tier: Free & Starter | Professional & Enterprise | API add-on (any tier)
* Burst: 100/10 seconds | 150/10 seconds | 200/10 seconds
* Daily: 250,000 | 500,000 | 1,000,000
*
* Official documentation states: The search endpoints are rate limited to five requests per second.
* Since with 5 RPS were still hitting secondly rate limits we lowered it to 4
*/
public function getPaginatedData(array $payload, string $type, int $offset = 0): array
{
$total = 0;
$lastId = null;
$rows = [];
foreach ($this->getPaginatedDataGenerator($payload, $type, $offset, $total, $lastId) as $row) {
$rows[] = $row;
}
return ['results' => $rows, 'total' => $total, 'last_record' => $lastId];
}
/**
* @throws HubspotException
* @throws SocialAccountTokenInvalidException
* @throws BadRequest
*/
public function getPaginatedDataGenerator(
array $payload,
string $type,
int $offset = 0,
int &$total = 0,
?string &$lastRecordId = null
): \Generator {
return $this->paginationService->getPaginatedDataGenerator(
$this,
$payload,
$type,
$offset,
$total,
$lastRecordId
);
}
/**
* Execute a search request against HubSpot CRM objects with rate limiting.
*
* @param string $objectType The object type ('deals', 'companies', 'contacts', 'calls')
* @param array<string, mixed> $payload The search payload with filters, sorts, properties, etc.
* @return array The search response with 'results', 'total', 'paging' keys
* @throws RateLimitException When rate limit is hit
* @throws HubspotException On API errors
*/
public function search(string $objectType, array $payload): array
{
$endpoint = self::BASE_URL . "/crm/v3/objects/{$objectType}/search";
return $this->executeRequest(function () use ($endpoint, $payload) {
$response = $this->getInstance()->getClient()->request('POST', $endpoint, ['json' => $payload]);
return $response->toArray();
});
}
/**
* @throws DealApiException
* @throws CrmException
*/
public function getOpportunityById(string $crmId, array $fields): array
{
try {
$deal = $this->getNewInstance()->crm()->deals()->basicApi()->getById(
$crmId,
implode(',', $fields),
'companies,contacts'
);
} catch (DealApiException $e) {
$this->log->info('[Hubspot] Failed to fetch opportunity', [
'crm_id' => $crmId,
'reason' => $e->getMessage(),
]);
throw $e;
}
if (! $deal instanceof DealWithAssociations) {
throw new CrmException('Deal not found');
}
return [
'id' => $deal->getId(),
'properties' => $deal->getProperties(),
'associations' => $deal->getAssociations(),
];
}
/**
* Generic batch read method for HubSpot objects
*
* @param string $objectType The object type ('deals', 'companies', 'contacts')
* @param array<string> $crmIds Array of HubSpot object IDs (max 100)
* @param array<string> $fields Array of property names to fetch
*
* @return array<string, array> Array keyed by CRM ID with object data
*/
private function batchReadObjects(string $objectType, array $crmIds, array $fields): array
{
if (empty($crmIds)) {
return [];
}
$this->validateBatchSize($objectType, $crmIds);
$this->ensureValidToken();
try {
$batchConfig = $this->createBatchConfiguration($objectType);
$batchReadRequest = $this->prepareBatchRequest($batchConfig, $crmIds, $fields);
$response = $batchConfig['api']->read($batchReadRequest);
$this->validateApiResponse($response, $objectType);
$results = $this->processApiResults($response);
$this->logBatchResults($objectType, $crmIds, $results);
return $results;
} catch (\Throwable $e) {
$this->handleBatchError($e, $objectType, $crmIds);
}
}
private function validateBatchSize(string $objectType, array $crmIds): void
{
if (count($crmIds) > 100) {
throw new \InvalidArgumentException("Batch size cannot exceed 100 {$objectType}");
}
}
private function createBatchConfiguration(string $objectType): array
{
$configurations = [
'deals' => [
'batchReadRequest' => new \HubSpot\Client\Crm\Deals\Model\BatchReadInputSimplePublicObjectId(),
'inputClass' => \HubSpot\Client\Crm\Deals\Model\SimplePublicObjectId::class,
'api' => $this->getNewInstance()->crm()->deals()->batchApi(),
],
'companies' => [
'batchReadRequest' => new \HubSpot\Client\Crm\Companies\Model\BatchReadInputSimplePublicObjectId(),
'inputClass' => \HubSpot\Client\Crm\Companies\Model\SimplePublicObjectId::class,
'api' => $this->getNewInstance()->crm()->companies()->batchApi(),
],
'contacts' => [
'batchReadRequest' => new \HubSpot\Client\Crm\Contacts\Model\BatchReadInputSimplePublicObjectId(),
'inputClass' => \HubSpot\Client\Crm\Contacts\Model\SimplePublicObjectId::class,
'api' => $this->getNewInstance()->crm()->contacts()->batchApi(),
],
];
if (! isset($configurations[$objectType])) {
throw new \InvalidArgumentException("Unsupported object type: {$objectType}");
}
return $configurations[$objectType];
}
private function prepareBatchRequest(array $batchConfig, array $crmIds, array $fields): object
{
$batchReadRequest = $batchConfig['batchReadRequest'];
$inputClass = $batchConfig['inputClass'];
$inputs = array_map(function ($crmId) use ($inputClass) {
$input = new $inputClass();
$input->setId($crmId);
return $input;
}, $crmIds);
$batchReadRequest->setInputs($inputs);
$batchReadRequest->setProperties($fields);
return $batchReadRequest;
}
private function validateApiResponse($response, string $objectType): void
{
if (! $response) {
throw new CrmException("HubSpot API returned null response for {$objectType} batch read");
}
}
private function processApiResults($response): array
{
$results = [];
$responseResults = $response->getResults();
if ($responseResults) {
foreach ($responseResults as $object) {
if ($object && $object->getId()) {
$results[$object->getId()] = [
'id' => $object->getId(),
'properties' => $object->getProperties() ?: [],
];
}
}
}
return $results;
}
private function logBatchResults(string $objectType, array $crmIds, array $results): void
{
$this->log->info("[HubSpot] Batch fetched {$objectType}", [
'requested_count' => count($crmIds),
'returned_count' => count($results),
'crm_ids' => $crmIds,
]);
}
private function handleBatchError(\Throwable $e, string $objectType, array $crmIds): void
{
$errorMessage = $e->getMessage() ?: 'Unknown error';
$errorTrace = $e->getTraceAsString() ?: 'No trace available';
$this->log->error("[HubSpot] Failed to batch fetch {$objectType}", [
'crm_ids' => $crmIds,
'error' => $errorMessage,
'trace' => $errorTrace,
]);
throw new CrmException("Failed to batch fetch {$objectType}: " . $errorMessage);
}
/**
* Batch read multiple opportunities by their CRM IDs
*
* @param array<string> $crmIds Array of HubSpot deal IDs (max 100)
* @param array<string> $fields Array of property names to fetch
*
* @return array<string, array> Array keyed by CRM ID with opportunity data
*/
public function getOpportunitiesByIds(array $crmIds, array $fields): array
{
return $this->batchReadObjects('deals', $crmIds, $fields);
}
/**
* Batch read multiple companies by their CRM IDs
*
* @param array<string> $crmIds Array of HubSpot company IDs (max 100)
* @param array<string> $fields Array of property names to fetch
*
* @return array<string, array> Array keyed by CRM ID with company data
*/
public function getCompaniesByIds(array $crmIds, array $fields): array
{
return $this->batchReadObjects('companies', $crmIds, $fields);
}
/**
* Batch read multiple contacts by their CRM IDs
*
* @param array<string> $crmIds Array of HubSpot contact IDs (max 100)
* @param array<string> $fields Array of property names to fetch
*
* @return array<string, array> Array keyed by CRM ID with contact data
*/
public function getContactsByIds(array $crmIds, array $fields): array
{
return $this->batchReadObjects('contacts', $crmIds, $fields);
}
/**
* @throws CompanyApiException
* @throws CrmException
*/
public function getAccountById(string $crmId, array $fields): array
{
try {
$company = $this->getNewInstance()->crm()->companies()->basicApi()->getById(
$crmId,
implode(',', $fields),
);
} catch (CompanyApiException $e) {
$this->log->info('[Hubspot] Failed to fetch account', [
'crm_id' => $crmId,
'reason' => $e->getMessage(),
]);
throw $e;
}
if (! $company instanceof CompaniesWithAssociations) {
throw new CrmException('Account not found');
}
return [
'id' => $company->getId(),
'properties' => $company->getProperties(),
];
}
/**
* @throws ContactApiException
* @throws CrmException
*/
public function getContactById(string $crmId, array $fields): array
{
try {
$contact = $this->getNewInstance()->crm()->contacts()->basicApi()->getById(
$crmId,
implode(',', $fields)
);
} catch (ContactApiException $e) {
$this->log->info('[Hubspot] Failed to fetch contact', [
'crm_id' => $crmId,
'reason' => $e->getMessage(),
]);
throw $e;
}
if (! $contact instanceof ContactsWithAssociations) {
throw new CrmException('Contact not found');
}
return [
'id' => $contact->getId(),
'properties' => $contact->getProperties(),
];
}
/**
* This is email search request that Hubspot offers as GET (more generous quota)
*/
public function getContactByEmail(string $email, array $fields = []): array
{
try {
$contact = $this->getNewInstance()->crm()->contacts()->basicApi()->getById(
$email,
implode(',', $fields),
null,
false,
'email'
);
return [
'id' => $contact->getId(),
'properties' => $contact->getProperties(),
];
} catch (ContactApiException $e) {
$this->log->info('[Hubspot] Failed to fetch contact', [
'email' => $email,
'reason' => $e->getMessage(),
]);
return [];
}
}
/**
* @throws CrmException
*/
public function fetchProperty(string $objectType, string $propertyId): Property
{
$result = $this->getNewInstance()->crm()->properties()->coreApi()->getByName($objectType, $propertyId);
if (! $result instanceof Property) {
$this->log->error('[Hubspot] Failed to fetch property', [
'object_type' => $objectType,
'property_id' => $propertyId,
'reason' => $result->getMessage(),
]);
throw new CrmException('Failed to fetch property');
}
return $result;
}
/**
* @return array<CrmFieldOption>
*/
public function fetchPropertyOptions(string $objectType, string $propertyId): array
{
/** @var array<CrmFieldOption> */
return $this->fetchProperty($objectType, $propertyId)->getOptions();
}
/**
* @return array<array{id:string, label:string, deleted:bool}>
*/
public function fetchCallDispositions(): array
{
/** @var Response $response */
$response = $this->getInstance()->engagements()->getCallDispositions();
/**
* @var array<array{
* id:string,
* label:string,
* deleted: bool
* }>
*/
return $response->toArray();
}
/**
* @return array<CrmFieldOption>
*/
public function fetchOpportunityPipelineStages(): array
{
$stages = [];
$apiResponse = $this->getNewInstance()->crm()->pipelines()->pipelinesApi()->getAll('deals');
if ($apiResponse instanceof Error) {
$this->log->error('[Hubspot] Failed to fetch opportunity pipelines', [
'reason' => $apiResponse->getMessage(),
]);
return [];
}
foreach ($apiResponse->getResults() as $pipeline) {
$pipelineStages = array_map(
static function (PipelineStage $stage) {
return [
'id' => $stage->getId(),
'label' => $stage->getLabel(),
];
},
$pipeline->getStages()
);
$stages = array_merge($stages, $pipelineStages);
}
return $stages;
}
public function fetchOpportunityPipelines(): array
{
$pipelines = [];
try {
$apiResponse = $this->makeRequest('/crm/v3/pipelines/deals');
} catch (\Exception $e) {
$this->log->info('[Hubspot] Failed to fetch opportunity pipelines', [
'reason' => $e->getMessage(),
]);
return [];
}
$response = $apiResponse->toArray();
foreach ($response['results'] as $pipeline) {
$pipelines[] = [
'id' => $pipeline['id'],
'label' => $pipeline['label'],
];
}
return $pipelines;
}
/**
* @return array<CrmFieldOption>
*/
public function fetchMeetingOutcomeFieldOptions(Field $field): array
{
return $field->getCrmProviderId() === 'meetingOutcome'
? $this->fetchMeetingOutcomeTypes()
: $this->fetchCallActivityTypes();
}
public function fetchMeetingOutcomeTypes(): array
{
return $this->extractMeetingTypeOptions(
'[URL_WITH_CREDENTIALS] Response $response */
$response = $this->getInstance()
->getClient()
->request('GET', $endpoint);
/**
* @var array<array{
* value: string,
* label: string,
* displayOrder: int
* }> $optionData
*/
$optionData = $response->toArray()['options'] ?? [];
$options = [];
foreach ($optionData as $item) {
$options[] = [
'id' => $item['value'],
'value' => $item['value'],
'label' => $item['label'],
'display_order' => $item['displayOrder'],
];
}
return $options;
}
/**
* @return array<CrmFieldOption>
*/
public function fetchDispositionFieldOptions(): array
{
$options = [];
$dispositions = $this->fetchCallDispositions();
foreach ($dispositions as $disposition) {
if ($disposition['deleted'] !== false) {
continue;
}
$option['value'] = $disposition['id'];
$option['id'] = $disposition['id'];
$option['label'] = $disposition['label'];
$options[] = $option;
}
return $options;
}
/**
* @return array<CrmFieldOption>
*/
public function fetchOpportunityFieldOptions(Field $field): array
{
if ($field->isStageField()) {
return $this->fetchOpportunityPipelineStages();
}
if ($field->isPipelineField()) {
return $this->fetchOpportunityPipelines();
}
return $this->fetchPropertyOptions('deals', $field->getCrmProviderId());
}
/**
* @throws BadRequest
* @throws HubspotException
*/
public function makeRequest(string $endpoint, $method = 'GET', $payload = [], ?string $queryString = null)
{
$endpoint = self::BASE_URL . $endpoint;
if ($method === 'GET') {
return $this->getInstance()->getClient()?->request(
method: $method,
endpoint: $endpoint,
query_string: $queryString
);
} else {
return $this->getInstance()->getClient()->request($method, $endpoint, [
'json' => ($payload),
]);
}
}
/**
* @throws BadRequest
* @throws HubspotException
*/
public function createMeeting(array $payload): Response
{
$endpoint = '/crm/v3/objects/meetings';
return $this->makeRequest($endpoint, 'POST', $payload);
}
/**
* @throws BadRequest
* @throws HubspotException
*/
public function updateMeeting(string $meetingId, array $payload): Response
{
$endpoint = '/crm/v3/objects/meetings/' . $meetingId;
return $this->makeRequest($endpoint, 'PATCH', $payload);
}
/**
* @throws \Exception
*/
public function createNote(
string $body,
string $ownerId,
int $timestamp,
string $objectId,
NoteObject $noteObject
): ?string {
try {
$noteInput = new SimplePublicObjectInput([
'properties' => [
'hs_note_body' => $body,
'hubspot_owner_id' => $ownerId,
'hs_timestamp' => $timestamp,
],
]);
// Create note
$note = $this->getNewInstance()->crm()->objects()->basicApi()->create('note', $noteInput);
$this->getNewInstance()->crm()->objects()->associationsApi()->create(
'note',
$note->getId(),
$this->getNoteObject($noteObject),
$objectId,
$this->getNoteAssociationType($noteObject),
);
return $note->getId();
} catch (\Exception $e) {
$this->log->error('[Hubspot] Failed to create note', [
'objectId' => $objectId,
'noteObject' => $noteObject->getObjectType(),
'reason' => $e->getMessage(),
]);
\Sentry::captureException($e);
}
return null;
}
public function updateEngagement(string $objectId, array $engagement, array $metadata): void
{
$this->getInstance()->engagements()->update($objectId, $engagement, $metadata);
}
public function getEngagementData(string $engagementId): array
{
$engagement = $this->getInstance()->engagements()->get($engagementId);
return $engagement->toArray();
}
public function createEngagement(array $engagement, array $associations, array $metadata): Response
{
return $this->getInstance()
->engagements()
->create($engagement, $associations, $metadata);
}
public function isUnauthorizedException(\Exception $e): bool
{
// Check for specific HubSpot API exception types first
if ($e instanceof BadRequest) {
// BadRequest can contain 401 status codes
return $e->getCode() === 401;
}
// Check for HTTP client exceptions with status codes
if ($e instanceof \GuzzleHttp\Exception\RequestException && $e->hasResponse()) {
$response = $e->getResponse();
if ($response !== null) {
return $response->getStatusCode() === 401;
}
}
// Check for Guzzle HTTP exceptions
if ($e instanceof \GuzzleHttp\Exception\ClientException) {
return $e->getCode() === 401;
}
// Fallback to string matching as last resort, but be more specific
$message = strtolower($e->getMessage());
return str_contains($message, '401 unauthorized') ||
str_contains($message, 'http 401') ||
str_contains($message, 'status code 401') ||
(preg_match('/\b401\b/', $message) && str_contains($message, 'unauthorized'));
}
/**
* Validates and refreshes the access token if needed before API requests.
* This ensures long-running processes don't fail due to token expiration.
*
* @throws SocialAccountTokenInvalidException
*/
public function ensureValidToken(): void
{
if ($this->oauthAccount === null) {
return;
}
$newToken = $this->tokenManager->ensureValidToken($this->oauthAccount);
if ($newToken !== null) {
$this->accessToken = $newToken;
}
}
public function getConfig()
{
return $this->config;
}
// returns only active (archived=false)
public function getOwners(): array
{
return $this->getNewInstance()->crm()->owners()->getAll();
}
/**
* @param bool $archived
*
* @return array<Owner>|[]
*/
public function getOwnersArchived(bool $archived = true): array
{
$endpoint = '/crm/v3/owners';
$queryParams = [
'archived' => $archived ? 'true' : 'false',
];
$queryString = http_build_query($queryParams);
$owners = [];
try {
$response = $this->makeRequest(endpoint: $endpoint, queryString: $queryString);
$responseData = $response?->toArray();
foreach ($responseData['results'] as $result) {
try {
$owners[] = Owner::create($result);
} catch (Throwable $e) {
$this->log->error('[HubSpot] Failed to process owner data', [
'result' => $result,
'error' => $e->getMessage(),
]);
continue;
}
}
} catch (Throwable $e) {
$this->log->error('HubSpot] Failed to fetch owners', [
'archived' => $archived,
'error' => $e->getMessage(),
]);
return [];
}
return $owners;
}
public function getMeeting(string $engagementId): ObjectWithAssociations
{
return $this->getNewInstance()->crm()->objects()->basicApi()
->getById('meeting', $engagementId, null, 'contact,company,deal');
}
public function deleteEngagement(string $engagementId): void
{
$this->getInstance()->engagements()->delete((int) $engagementId);
}
public function getAssociationsData(array $ids, string $fromObject, string $toObject): array
{
$associationData = [];
$idChunks = array_chunk($ids, self::ASSOCIATIONS_BATCH_SIZE_LIMIT);
foreach ($idChunks as $idChunk) {
try {
$batchInput = new \HubSpot\Client\Crm\Associations\Model\BatchInputPublicObjectId();
$batchInput->setInputs(array_map(function ($id) {
$publicObjectId = new \HubSpot\Client\Crm\Associations\Model\PublicObjectId();
$publicObjectId->setId($id);
return $publicObjectId;
}, $idChunk));
$associatedObjectsData = $this
->getNewInstance()
->crm()
->associations()
->batchApi()
->read($fromObject, $toObject, $batchInput);
if ($associatedObjectsData instanceof \HubSpot\Client\Crm\Associations\Model\BatchResponsePublicAssociationMulti) {
foreach ($associatedObjectsData->getResults() as $association) {
$from = $association->getFrom()->getId();
$toAssociations = $association->getTo();
if (! empty($toAssociations)) {
$associationData[$from] = array_map(function ($item) {
return $item->getId();
}, $toAssociations);
}
}
}
// } catch (RateLimitException $e) {
// throw $e;
} catch (\Exception $e) {
$this->log->error('[Hubspot] Failed to fetch associations', [
'from_object' => $fromObject,
'to_object' => $toObject,
'reason' => $e->getMessage(),
]);
}
}
return $associationData;
}
/**
* @throws \Exception
*/
private function getNoteAssociationType(NoteObject $noteObject): string
{
return match($noteObject) {
NoteObject::Opportunity => 'note_to_deal',
NoteObject::Lead, NoteObject::Contact => 'note_to_contact', // or 'note_to_lead' if your portal supports it
NoteObject::Account => 'note_to_company',
NoteObject::Call, NoteObject::Event => throw new \Exception('Not supported'),
};
}
/**
* @throws \Exception
*/
private function getNoteObject(NoteObject $noteObject): string
{
return match($noteObject) {
NoteObject::Opportunity => 'deal',
NoteObject::Lead, NoteObject::Contact => 'contact',
NoteObject::Account => 'company',
NoteObject::Call, NoteObject::Event => throw new \Exception('Not supported'),
};
}
public function addAssociations(string $objectType, string $associationType, array $payload): Response
{
$endpoint = "/crm/v4/associations/$objectType/$associationType/batch/create";
return $this->makeRequest($endpoint, 'POST', $payload);
}
public function removeAssociations(string $objectType, string $associationType, array $payload): Response
{
$endpoint = "/crm/v4/associations/$objectType/$associationType/batch/archive";
return $this->makeRequest($endpoint, 'POST', $payload);
}
}
Show Replace Field
Search History
429
New Line
Match Case
Words
Regex
Replace History
Replace
New Line
Preserve case
1/4
Previous Occurrence
Next Occurrence
Filter Search Results
Open in Window, Multiple Cursors
Click to highlight
Close
Sync Changes
Hide This Notification
Code changed:
Hide
54
Previous Highlighted Error
Next Highlighted Error
[2026-05-11 11:08:45] local.INFO: Jiminny\Console\Commands\Command::run Memory usage before starting command {"command":"mailbox:batch:retry-failed","memoryBeforeCommandInMb":60.0,"memoryPeakBeforeCommandInMb":99.727} {"correlation_id":"43b1fb67-9aac-4fc6-9ced-689ecda5c548","trace_id":"60028d0e-dcd8-496a-a7ba-3a04b8d646e2"}
[2026-05-11 11:08:45] local.INFO: [Commands/AsyncUpdateEsEntities] Starting ES update worker {"pid":72650,"workerId":"","target":"activities"} {"correlation_id":"6d49ffdc-2ed7-4eae-a1ee-e25ca95bbea8","trace_id":"906573b5-005c-4820-8a32-3b0703ea86dd"}
[2026-05-11 11:08:46] local.INFO: Jiminny\Console\Commands\Command::run Memory usage for command {"command":"mailbox:batch:retry-failed","memoryBeforeCommandInMb":60.0,"memoryAfterCommandInMB":60.0,"memoryPeakBeforeCommandInMb":99.727,"memoryPeakAfterCommandInMB":99.727} {"correlation_id":"43b1fb67-9aac-4fc6-9ced-689ecda5c548","trace_id":"60028d0e-dcd8-496a-a7ba-3a04b8d646e2"}
[2026-05-11 11:09:12] local.INFO: [MatchActivityCrmData] Starting CRM data matching {"activity":615092,"remote_search":true,"set_configuration":2,"old_state":{"lead_id":null,"contact_id":null,"account_id":26,"opportunity_id":22,"stage_id":89}} {"correlation_id":"f33d47cb-76c6-4c27-a641-48cbf69e623d","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:12] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":615092} {"correlation_id":"f33d47cb-76c6-4c27-a641-48cbf69e623d","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:12] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":615092,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"f33d47cb-76c6-4c27-a641-48cbf69e623d","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:12] local.INFO: [MatchActivityCrmData] Participants old state {"activity":615092,"participants":[{"id":1004102,"user_id":null,"contact_id":null,"lead_id":null},{"id":1004103,"user_id":89,"contact_id":null,"lead_id":null}]} {"correlation_id":"f33d47cb-76c6-4c27-a641-48cbf69e623d","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:12] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"f33d47cb-76c6-4c27-a641-48cbf69e623d","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:12] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"f33d47cb-76c6-4c27-a641-48cbf69e623d","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:12] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"f33d47cb-76c6-4c27-a641-48cbf69e623d","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:12] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"f33d47cb-76c6-4c27-a641-48cbf69e623d","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:12] local.INFO: [Prospect match] Cache miss, calling the API {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"f33d47cb-76c6-4c27-a641-48cbf69e623d","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:13] local.INFO: [Hubspot] Failed to fetch contact {"email":"[EMAIL]","reason":"[404] Client error: `GET https://api.hubapi.com/crm/v3/objects/contacts/nikolay.nikolov%40jiminny.com?properties=email%2Cfirstname%2Clastname%2Ccountry%2Cphone%2Cmobilephone%2Cjobtitle%2Chubspot_owner_id%2Cassociatedcompanyid%2Cphoto&archived=0&idProperty=email` resulted in a `404 Not Found` response"} {"correlation_id":"f33d47cb-76c6-4c27-a641-48cbf69e623d","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:13] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"f33d47cb-76c6-4c27-a641-48cbf69e623d","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:13] local.WARNING: [Hubspot] No retry-after header or known message, using default {"exception_class":"SevenShores\\Hubspot\\Exceptions\\BadRequest","message":""} {"correlation_id":"f33d47cb-76c6-4c27-a641-48cbf69e623d","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:13] local.WARNING: [Hubspot] Received 429 from API {"team_id":2,"config_id":2,"retry_after":10,"message":"","reason":"Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response:
{\"status\":\"error\",\"message\":\"You have reached your secondly limit.\",\"errorType\":\"RATE_LIMIT\",\"correlationId\":\"019e16ba-1 (truncated...)
"} {"correlation_id":"f33d47cb-76c6-4c27-a641-48cbf69e623d","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:13] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":10,"delay":12} {"correlation_id":"f33d47cb-76c6-4c27-a641-48cbf69e623d","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [MatchActivityCrmData] Starting CRM data matching {"activity":614436,"remote_search":true,"set_configuration":2,"old_state":{"lead_id":null,"contact_id":null,"account_id":26,"opportunity_id":22,"stage_id":89}} {"correlation_id":"ccafe863-7885-4971-96fb-87ef6dd4adf3","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":614436} {"correlation_id":"ccafe863-7885-4971-96fb-87ef6dd4adf3","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":614436,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"ccafe863-7885-4971-96fb-87ef6dd4adf3","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [MatchActivityCrmData] Participants old state {"activity":614436,"participants":[{"id":1002751,"user_id":null,"contact_id":null,"lead_id":null},{"id":1002752,"user_id":89,"contact_id":null,"lead_id":null}]} {"correlation_id":"ccafe863-7885-4971-96fb-87ef6dd4adf3","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"ccafe863-7885-4971-96fb-87ef6dd4adf3","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"ccafe863-7885-4971-96fb-87ef6dd4adf3","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"ccafe863-7885-4971-96fb-87ef6dd4adf3","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"ccafe863-7885-4971-96fb-87ef6dd4adf3","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [Prospect match] Cache / local search hit {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"ccafe863-7885-4971-96fb-87ef6dd4adf3","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"ccafe863-7885-4971-96fb-87ef6dd4adf3","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":10,"delay":10} {"correlation_id":"ccafe863-7885-4971-96fb-87ef6dd4adf3","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [MatchActivityCrmData] Starting CRM data matching {"activity":614382,"remote_search":true,"set_configuration":2,"old_state":{"lead_id":null,"contact_id":null,"account_id":26,"opportunity_id":22,"stage_id":89}} {"correlation_id":"f00a4506-adfe-4fdc-b932-e6d2bc751fde","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":614382} {"correlation_id":"f00a4506-adfe-4fdc-b932-e6d2bc751fde","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":614382,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"f00a4506-adfe-4fdc-b932-e6d2bc751fde","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [MatchActivityCrmData] Participants old state {"activity":614382,"participants":[{"id":1002632,"user_id":null,"contact_id":null,"lead_id":null},{"id":1002633,"user_id":89,"contact_id":null,"lead_id":null}]} {"correlation_id":"f00a4506-adfe-4fdc-b932-e6d2bc751fde","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"f00a4506-adfe-4fdc-b932-e6d2bc751fde","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"f00a4506-adfe-4fdc-b932-e6d2bc751fde","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"f00a4506-adfe-4fdc-b932-e6d2bc751fde","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"f00a4506-adfe-4fdc-b932-e6d2bc751fde","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [Prospect match] Cache / local search hit {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"f00a4506-adfe-4fdc-b932-e6d2bc751fde","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"f00a4506-adfe-4fdc-b932-e6d2bc751fde","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":10,"delay":12} {"correlation_id":"f00a4506-adfe-4fdc-b932-e6d2bc751fde","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [MatchActivityCrmData] Starting CRM data matching {"activity":614381,"remote_search":true,"set_configuration":2,"old_state":{"lead_id":null,"contact_id":null,"account_id":26,"opportunity_id":22,"stage_id":89}} {"correlation_id":"36bd73f5-17f9-4f70-8254-2214543c7f8e","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":614381} {"correlation_id":"36bd73f5-17f9-4f70-8254-2214543c7f8e","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":614381,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"36bd73f5-17f9-4f70-8254-2214543c7f8e","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [MatchActivityCrmData] Participants old state {"activity":614381,"participants":[{"id":1002630,"user_id":null,"contact_id":null,"lead_id":null},{"id":1002631,"user_id":89,"contact_id":null,"lead_id":null}]} {"correlation_id":"36bd73f5-17f9-4f70-8254-2214543c7f8e","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"36bd73f5-17f9-4f70-8254-2214543c7f8e","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"36bd73f5-17f9-4f70-8254-2214543c7f8e","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"36bd73f5-17f9-4f70-8254-2214543c7f8e","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"36bd73f5-17f9-4f70-8254-2214543c7f8e","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [Prospect match] Cache / local search hit {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"36bd73f5-17f9-4f70-8254-2214543c7f8e","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"36bd73f5-17f9-4f70-8254-2214543c7f8e","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":10,"delay":10} {"correlation_id":"36bd73f5-17f9-4f70-8254-2214543c7f8e","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:15] local.INFO: [MatchActivityCrmData] Starting CRM data matching {"activity":614378,"remote_search":true,"set_configuration":2,"old_state":{"lead_id":null,"contact_id":6167,"account_id":null,"opportunity_id":null,"stage_id":null}} {"correlation_id":"a4a3a058-ec22-4f04-bb14-a9bff18ce214","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:15] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":614378} {"correlation_id":"a4a3a058-ec22-4f04-bb14-a9bff18ce214","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:15] local.INFO: [ Asyn...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
18353
|
792
|
34
|
2026-05-11T11:12:49.492764+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778497969492_m1.jpg...
|
PhpStorm
|
faVsco.js – Client.php
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
JY-20725-handle-HS-search Project: faVsco.js, menu
JY-20725-handle-HS-search-rate-limit, menu
Start Listening for PHP Debug Connections
HandleHubspotRateLimitTest
Run 'HandleHubspotRateLimitTest'
Debug 'HandleHubspotRateLimitTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
1
2
67
3
Previous Highlighted Error
Next Highlighted Error
<?php
declare(strict_types=1);
namespace Jiminny\Services\Crm\Hubspot;
use HubSpot\Client\Crm\Deals\ApiException as DealApiException;
use HubSpot\Client\Crm\Contacts\ApiException as ContactApiException;
use HubSpot\Client\Crm\Companies\ApiException as CompanyApiException;
use HubSpot\Client\Crm\Contacts\Model\SimplePublicObjectWithAssociations as ContactsWithAssociations;
use HubSpot\Client\Crm\Companies\Model\SimplePublicObjectWithAssociations as CompaniesWithAssociations;
use HubSpot\Client\Crm\Deals\Model\SimplePublicObjectWithAssociations as DealWithAssociations;
use HubSpot\Client\Crm\Objects\Model\SimplePublicObjectInput;
use HubSpot\Client\Crm\Objects\Model\SimplePublicObjectWithAssociations as ObjectWithAssociations;
use HubSpot\Client\Crm\Pipelines\Model\Error;
use HubSpot\Client\Crm\Pipelines\Model\PipelineStage;
use HubSpot\Client\Crm\Properties\Model\Property;
use HubSpot\Discovery\Discovery;
use Jiminny\Exceptions\CrmException;
use Jiminny\Exceptions\RateLimitException;
use Jiminny\Exceptions\SocialAccountTokenInvalidException;
use Jiminny\Jobs\Crm\NoteObject;
use Jiminny\Models\Crm\Field;
use Jiminny\Services\Crm\BaseClient;
use Jiminny\Services\Crm\Hubspot\DTO\Response\Owner;
use Jiminny\Services\SocialAccountService;
use SevenShores\Hubspot\Exceptions\BadRequest;
use SevenShores\Hubspot\Exceptions\HubspotException;
use SevenShores\Hubspot\Factory;
use SevenShores\Hubspot\Http\Response;
use Jiminny\Services\Crm\Hubspot\Pagination\HubspotPaginationService;
use Illuminate\Support\Facades\Redis;
use Throwable;
/**
* @phpstan-type CrmFieldOption array{id:string, label:string, value?:string}
*/
class Client extends BaseClient implements HubspotClientInterface
{
public const string MIN_API_VERSION = '2';
public const string BASE_URL = '[URL_WITH_CREDENTIALS] T
* @param callable(): T $apiCall
* @return T
*
* @throws RateLimitException
*/
private function executeRequest(callable $apiCall)
{
$cacheKey = $this->getRateLimitCacheKey();
$cachedRetryAfter = Redis::get($cacheKey);
if (is_string($cachedRetryAfter) && is_numeric($cachedRetryAfter)) {
throw new RateLimitException(
'Hubspot rate limit (cached circuit-breaker)',
(int) $cachedRetryAfter,
);
}
try {
return $apiCall();
} catch (Throwable $e) {
if ($this->isHubspotRateLimit($e)) {
$retryAfter = $this->parseRetryAfter($e);
Redis::setex($cacheKey, $retryAfter, (string) $retryAfter);
$this->log->warning('[Hubspot] Received 429 from API', [
'team_id' => $this->config->team_id,
'config_id' => $this->config->getId(),
'retry_after' => $retryAfter,
'reason' => $e->getMessage(),
]);
throw new RateLimitException('Hubspot returned 429', $retryAfter, $e);
}
throw $e;
}
}
private function getRateLimitCacheKey(): string
{
return sprintf('hubspot:ratelimit:portal:%d', $this->config->getId());
}
public function isHubspotRateLimit(Throwable $e): bool
{
if ($e instanceof BadRequest
|| $e instanceof DealApiException
|| $e instanceof ContactApiException
|| $e instanceof CompanyApiException
|| $e instanceof \GuzzleHttp\Exception\RequestException
) {
return (int) $e->getCode() === 429;
}
return false;
}
public function parseRetryAfter(Throwable $e): int
{
if (method_exists($e, 'getResponseHeaders')) {
$headers = $e->getResponseHeaders() ?: [];
$value = $headers['Retry-After'] ?? $headers['retry-after'] ?? null;
if (is_array($value)) {
$value = $value[0] ?? null;
}
if (is_numeric($value)) {
return (int) $value;
}
}
$message = strtolower($e->getMessage());
if (str_contains($message, 'daily')) {
return 600;
}
if (str_contains($message, 'ten secondly')) {
return 10;
}
if (str_contains($message, 'secondly')) {
return 1;
}
$this->log->warning('[Hubspot] No retry-after header or known message, using default', [
'exception_class' => get_class($e),
'message' => $message,
]);
return 10;
}
public function parseMessage(Throwable $e): string
{
if (! method_exists($e, 'getResponseBody')) {
return '';
}
$body = $e->getResponseBody();
if (is_string($body)) {
$body = json_decode($body, true) ?? [];
}
if (! is_array($body)) {
return '';
}
return (string) ($body['message'] ?? '');
}
public function getMinimumApiVersion(): string
{
return self::MIN_API_VERSION;
}
public function getInstance(): Factory
{
return new Factory([
'key' => $this->accessToken,
'oauth2' => true,
'base_url' => $this->baseUrl,
]);
}
public function getNewInstance(): Discovery
{
return \HubSpot\Factory::createWithAccessToken($this->accessToken);
}
/**
* Secondly and daily limits for Hubspot API
*
* Product Tier: Free & Starter | Professional & Enterprise | API add-on (any tier)
* Burst: 100/10 seconds | 150/10 seconds | 200/10 seconds
* Daily: 250,000 | 500,000 | 1,000,000
*
* Official documentation states: The search endpoints are rate limited to five requests per second.
* Since with 5 RPS were still hitting secondly rate limits we lowered it to 4
*/
public function getPaginatedData(array $payload, string $type, int $offset = 0): array
{
$total = 0;
$lastId = null;
$rows = [];
foreach ($this->getPaginatedDataGenerator($payload, $type, $offset, $total, $lastId) as $row) {
$rows[] = $row;
}
return ['results' => $rows, 'total' => $total, 'last_record' => $lastId];
}
/**
* @throws HubspotException
* @throws SocialAccountTokenInvalidException
* @throws BadRequest
*/
public function getPaginatedDataGenerator(
array $payload,
string $type,
int $offset = 0,
int &$total = 0,
?string &$lastRecordId = null
): \Generator {
return $this->paginationService->getPaginatedDataGenerator(
$this,
$payload,
$type,
$offset,
$total,
$lastRecordId
);
}
/**
* Execute a search request against HubSpot CRM objects with rate limiting.
*
* @param string $objectType The object type ('deals', 'companies', 'contacts', 'calls')
* @param array<string, mixed> $payload The search payload with filters, sorts, properties, etc.
* @return array The search response with 'results', 'total', 'paging' keys
* @throws RateLimitException When rate limit is hit
* @throws HubspotException On API errors
*/
public function search(string $objectType, array $payload): array
{
$endpoint = self::BASE_URL . "/crm/v3/objects/{$objectType}/search";
return $this->executeRequest(function () use ($endpoint, $payload) {
$response = $this->getInstance()->getClient()->request('POST', $endpoint, ['json' => $payload]);
return $response->toArray();
});
}
/**
* @throws DealApiException
* @throws CrmException
*/
public function getOpportunityById(string $crmId, array $fields): array
{
try {
$deal = $this->getNewInstance()->crm()->deals()->basicApi()->getById(
$crmId,
implode(',', $fields),
'companies,contacts'
);
} catch (DealApiException $e) {
$this->log->info('[Hubspot] Failed to fetch opportunity', [
'crm_id' => $crmId,
'reason' => $e->getMessage(),
]);
throw $e;
}
if (! $deal instanceof DealWithAssociations) {
throw new CrmException('Deal not found');
}
return [
'id' => $deal->getId(),
'properties' => $deal->getProperties(),
'associations' => $deal->getAssociations(),
];
}
/**
* Generic batch read method for HubSpot objects
*
* @param string $objectType The object type ('deals', 'companies', 'contacts')
* @param array<string> $crmIds Array of HubSpot object IDs (max 100)
* @param array<string> $fields Array of property names to fetch
*
* @return array<string, array> Array keyed by CRM ID with object data
*/
private function batchReadObjects(string $objectType, array $crmIds, array $fields): array
{
if (empty($crmIds)) {
return [];
}
$this->validateBatchSize($objectType, $crmIds);
$this->ensureValidToken();
try {
$batchConfig = $this->createBatchConfiguration($objectType);
$batchReadRequest = $this->prepareBatchRequest($batchConfig, $crmIds, $fields);
$response = $batchConfig['api']->read($batchReadRequest);
$this->validateApiResponse($response, $objectType);
$results = $this->processApiResults($response);
$this->logBatchResults($objectType, $crmIds, $results);
return $results;
} catch (\Throwable $e) {
$this->handleBatchError($e, $objectType, $crmIds);
}
}
private function validateBatchSize(string $objectType, array $crmIds): void
{
if (count($crmIds) > 100) {
throw new \InvalidArgumentException("Batch size cannot exceed 100 {$objectType}");
}
}
private function createBatchConfiguration(string $objectType): array
{
$configurations = [
'deals' => [
'batchReadRequest' => new \HubSpot\Client\Crm\Deals\Model\BatchReadInputSimplePublicObjectId(),
'inputClass' => \HubSpot\Client\Crm\Deals\Model\SimplePublicObjectId::class,
'api' => $this->getNewInstance()->crm()->deals()->batchApi(),
],
'companies' => [
'batchReadRequest' => new \HubSpot\Client\Crm\Companies\Model\BatchReadInputSimplePublicObjectId(),
'inputClass' => \HubSpot\Client\Crm\Companies\Model\SimplePublicObjectId::class,
'api' => $this->getNewInstance()->crm()->companies()->batchApi(),
],
'contacts' => [
'batchReadRequest' => new \HubSpot\Client\Crm\Contacts\Model\BatchReadInputSimplePublicObjectId(),
'inputClass' => \HubSpot\Client\Crm\Contacts\Model\SimplePublicObjectId::class,
'api' => $this->getNewInstance()->crm()->contacts()->batchApi(),
],
];
if (! isset($configurations[$objectType])) {
throw new \InvalidArgumentException("Unsupported object type: {$objectType}");
}
return $configurations[$objectType];
}
private function prepareBatchRequest(array $batchConfig, array $crmIds, array $fields): object
{
$batchReadRequest = $batchConfig['batchReadRequest'];
$inputClass = $batchConfig['inputClass'];
$inputs = array_map(function ($crmId) use ($inputClass) {
$input = new $inputClass();
$input->setId($crmId);
return $input;
}, $crmIds);
$batchReadRequest->setInputs($inputs);
$batchReadRequest->setProperties($fields);
return $batchReadRequest;
}
private function validateApiResponse($response, string $objectType): void
{
if (! $response) {
throw new CrmException("HubSpot API returned null response for {$objectType} batch read");
}
}
private function processApiResults($response): array
{
$results = [];
$responseResults = $response->getResults();
if ($responseResults) {
foreach ($responseResults as $object) {
if ($object && $object->getId()) {
$results[$object->getId()] = [
'id' => $object->getId(),
'properties' => $object->getProperties() ?: [],
];
}
}
}
return $results;
}
private function logBatchResults(string $objectType, array $crmIds, array $results): void
{
$this->log->info("[HubSpot] Batch fetched {$objectType}", [
'requested_count' => count($crmIds),
'returned_count' => count($results),
'crm_ids' => $crmIds,
]);
}
private function handleBatchError(\Throwable $e, string $objectType, array $crmIds): void
{
$errorMessage = $e->getMessage() ?: 'Unknown error';
$errorTrace = $e->getTraceAsString() ?: 'No trace available';
$this->log->error("[HubSpot] Failed to batch fetch {$objectType}", [
'crm_ids' => $crmIds,
'error' => $errorMessage,
'trace' => $errorTrace,
]);
throw new CrmException("Failed to batch fetch {$objectType}: " . $errorMessage);
}
/**
* Batch read multiple opportunities by their CRM IDs
*
* @param array<string> $crmIds Array of HubSpot deal IDs (max 100)
* @param array<string> $fields Array of property names to fetch
*
* @return array<string, array> Array keyed by CRM ID with opportunity data
*/
public function getOpportunitiesByIds(array $crmIds, array $fields): array
{
return $this->batchReadObjects('deals', $crmIds, $fields);
}
/**
* Batch read multiple companies by their CRM IDs
*
* @param array<string> $crmIds Array of HubSpot company IDs (max 100)
* @param array<string> $fields Array of property names to fetch
*
* @return array<string, array> Array keyed by CRM ID with company data
*/
public function getCompaniesByIds(array $crmIds, array $fields): array
{
return $this->batchReadObjects('companies', $crmIds, $fields);
}
/**
* Batch read multiple contacts by their CRM IDs
*
* @param array<string> $crmIds Array of HubSpot contact IDs (max 100)
* @param array<string> $fields Array of property names to fetch
*
* @return array<string, array> Array keyed by CRM ID with contact data
*/
public function getContactsByIds(array $crmIds, array $fields): array
{
return $this->batchReadObjects('contacts', $crmIds, $fields);
}
/**
* @throws CompanyApiException
* @throws CrmException
*/
public function getAccountById(string $crmId, array $fields): array
{
try {
$company = $this->getNewInstance()->crm()->companies()->basicApi()->getById(
$crmId,
implode(',', $fields),
);
} catch (CompanyApiException $e) {
$this->log->info('[Hubspot] Failed to fetch account', [
'crm_id' => $crmId,
'reason' => $e->getMessage(),
]);
throw $e;
}
if (! $company instanceof CompaniesWithAssociations) {
throw new CrmException('Account not found');
}
return [
'id' => $company->getId(),
'properties' => $company->getProperties(),
];
}
/**
* @throws ContactApiException
* @throws CrmException
*/
public function getContactById(string $crmId, array $fields): array
{
try {
$contact = $this->getNewInstance()->crm()->contacts()->basicApi()->getById(
$crmId,
implode(',', $fields)
);
} catch (ContactApiException $e) {
$this->log->info('[Hubspot] Failed to fetch contact', [
'crm_id' => $crmId,
'reason' => $e->getMessage(),
]);
throw $e;
}
if (! $contact instanceof ContactsWithAssociations) {
throw new CrmException('Contact not found');
}
return [
'id' => $contact->getId(),
'properties' => $contact->getProperties(),
];
}
/**
* This is email search request that Hubspot offers as GET (more generous quota)
*/
public function getContactByEmail(string $email, array $fields = []): array
{
try {
$contact = $this->getNewInstance()->crm()->contacts()->basicApi()->getById(
$email,
implode(',', $fields),
null,
false,
'email'
);
return [
'id' => $contact->getId(),
'properties' => $contact->getProperties(),
];
} catch (ContactApiException $e) {
$this->log->info('[Hubspot] Failed to fetch contact', [
'email' => $email,
'reason' => $e->getMessage(),
]);
return [];
}
}
/**
* @throws CrmException
*/
public function fetchProperty(string $objectType, string $propertyId): Property
{
$result = $this->getNewInstance()->crm()->properties()->coreApi()->getByName($objectType, $propertyId);
if (! $result instanceof Property) {
$this->log->error('[Hubspot] Failed to fetch property', [
'object_type' => $objectType,
'property_id' => $propertyId,
'reason' => $result->getMessage(),
]);
throw new CrmException('Failed to fetch property');
}
return $result;
}
/**
* @return array<CrmFieldOption>
*/
public function fetchPropertyOptions(string $objectType, string $propertyId): array
{
/** @var array<CrmFieldOption> */
return $this->fetchProperty($objectType, $propertyId)->getOptions();
}
/**
* @return array<array{id:string, label:string, deleted:bool}>
*/
public function fetchCallDispositions(): array
{
/** @var Response $response */
$response = $this->getInstance()->engagements()->getCallDispositions();
/**
* @var array<array{
* id:string,
* label:string,
* deleted: bool
* }>
*/
return $response->toArray();
}
/**
* @return array<CrmFieldOption>
*/
public function fetchOpportunityPipelineStages(): array
{
$stages = [];
$apiResponse = $this->getNewInstance()->crm()->pipelines()->pipelinesApi()->getAll('deals');
if ($apiResponse instanceof Error) {
$this->log->error('[Hubspot] Failed to fetch opportunity pipelines', [
'reason' => $apiResponse->getMessage(),
]);
return [];
}
foreach ($apiResponse->getResults() as $pipeline) {
$pipelineStages = array_map(
static function (PipelineStage $stage) {
return [
'id' => $stage->getId(),
'label' => $stage->getLabel(),
];
},
$pipeline->getStages()
);
$stages = array_merge($stages, $pipelineStages);
}
return $stages;
}
public function fetchOpportunityPipelines(): array
{
$pipelines = [];
try {
$apiResponse = $this->makeRequest('/crm/v3/pipelines/deals');
} catch (\Exception $e) {
$this->log->info('[Hubspot] Failed to fetch opportunity pipelines', [
'reason' => $e->getMessage(),
]);
return [];
}
$response = $apiResponse->toArray();
foreach ($response['results'] as $pipeline) {
$pipelines[] = [
'id' => $pipeline['id'],
'label' => $pipeline['label'],
];
}
return $pipelines;
}
/**
* @return array<CrmFieldOption>
*/
public function fetchMeetingOutcomeFieldOptions(Field $field): array
{
return $field->getCrmProviderId() === 'meetingOutcome'
? $this->fetchMeetingOutcomeTypes()
: $this->fetchCallActivityTypes();
}
public function fetchMeetingOutcomeTypes(): array
{
return $this->extractMeetingTypeOptions(
'[URL_WITH_CREDENTIALS] Response $response */
$response = $this->getInstance()
->getClient()
->request('GET', $endpoint);
/**
* @var array<array{
* value: string,
* label: string,
* displayOrder: int
* }> $optionData
*/
$optionData = $response->toArray()['options'] ?? [];
$options = [];
foreach ($optionData as $item) {
$options[] = [
'id' => $item['value'],
'value' => $item['value'],
'label' => $item['label'],
'display_order' => $item['displayOrder'],
];
}
return $options;
}
/**
* @return array<CrmFieldOption>
*/
public function fetchDispositionFieldOptions(): array
{
$options = [];
$dispositions = $this->fetchCallDispositions();
foreach ($dispositions as $disposition) {
if ($disposition['deleted'] !== false) {
continue;
}
$option['value'] = $disposition['id'];
$option['id'] = $disposition['id'];
$option['label'] = $disposition['label'];
$options[] = $option;
}
return $options;
}
/**
* @return array<CrmFieldOption>
*/
public function fetchOpportunityFieldOptions(Field $field): array
{
if ($field->isStageField()) {
return $this->fetchOpportunityPipelineStages();
}
if ($field->isPipelineField()) {
return $this->fetchOpportunityPipelines();
}
return $this->fetchPropertyOptions('deals', $field->getCrmProviderId());
}
/**
* @throws BadRequest
* @throws HubspotException
*/
public function makeRequest(string $endpoint, $method = 'GET', $payload = [], ?string $queryString = null)
{
$endpoint = self::BASE_URL . $endpoint;
if ($method === 'GET') {
return $this->getInstance()->getClient()?->request(
method: $method,
endpoint: $endpoint,
query_string: $queryString
);
} else {
return $this->getInstance()->getClient()->request($method, $endpoint, [
'json' => ($payload),
]);
}
}
/**
* @throws BadRequest
* @throws HubspotException
*/
public function createMeeting(array $payload): Response
{
$endpoint = '/crm/v3/objects/meetings';
return $this->makeRequest($endpoint, 'POST', $payload);
}
/**
* @throws BadRequest
* @throws HubspotException
*/
public function updateMeeting(string $meetingId, array $payload): Response
{
$endpoint = '/crm/v3/objects/meetings/' . $meetingId;
return $this->makeRequest($endpoint, 'PATCH', $payload);
}
/**
* @throws \Exception
*/
public function createNote(
string $body,
string $ownerId,
int $timestamp,
string $objectId,
NoteObject $noteObject
): ?string {
try {
$noteInput = new SimplePublicObjectInput([
'properties' => [
'hs_note_body' => $body,
'hubspot_owner_id' => $ownerId,
'hs_timestamp' => $timestamp,
],
]);
// Create note
$note = $this->getNewInstance()->crm()->objects()->basicApi()->create('note', $noteInput);
$this->getNewInstance()->crm()->objects()->associationsApi()->create(
'note',
$note->getId(),
$this->getNoteObject($noteObject),
$objectId,
$this->getNoteAssociationType($noteObject),
);
return $note->getId();
} catch (\Exception $e) {
$this->log->error('[Hubspot] Failed to create note', [
'objectId' => $objectId,
'noteObject' => $noteObject->getObjectType(),
'reason' => $e->getMessage(),
]);
\Sentry::captureException($e);
}
return null;
}
public function updateEngagement(string $objectId, array $engagement, array $metadata): void
{
$this->getInstance()->engagements()->update($objectId, $engagement, $metadata);
}
public function getEngagementData(string $engagementId): array
{
$engagement = $this->getInstance()->engagements()->get($engagementId);
return $engagement->toArray();
}
public function createEngagement(array $engagement, array $associations, array $metadata): Response
{
return $this->getInstance()
->engagements()
->create($engagement, $associations, $metadata);
}
public function isUnauthorizedException(\Exception $e): bool
{
// Check for specific HubSpot API exception types first
if ($e instanceof BadRequest) {
// BadRequest can contain 401 status codes
return $e->getCode() === 401;
}
// Check for HTTP client exceptions with status codes
if ($e instanceof \GuzzleHttp\Exception\RequestException && $e->hasResponse()) {
$response = $e->getResponse();
if ($response !== null) {
return $response->getStatusCode() === 401;
}
}
// Check for Guzzle HTTP exceptions
if ($e instanceof \GuzzleHttp\Exception\ClientException) {
return $e->getCode() === 401;
}
// Fallback to string matching as last resort, but be more specific
$message = strtolower($e->getMessage());
return str_contains($message, '401 unauthorized') ||
str_contains($message, 'http 401') ||
str_contains($message, 'status code 401') ||
(preg_match('/\b401\b/', $message) && str_contains($message, 'unauthorized'));
}
/**
* Validates and refreshes the access token if needed before API requests.
* This ensures long-running processes don't fail due to token expiration.
*
* @throws SocialAccountTokenInvalidException
*/
public function ensureValidToken(): void
{
if ($this->oauthAccount === null) {
return;
}
$newToken = $this->tokenManager->ensureValidToken($this->oauthAccount);
if ($newToken !== null) {
$this->accessToken = $newToken;
}
}
public function getConfig()
{
return $this->config;
}
// returns only active (archived=false)
public function getOwners(): array
{
return $this->getNewInstance()->crm()->owners()->getAll();
}
/**
* @param bool $archived
*
* @return array<Owner>|[]
*/
public function getOwnersArchived(bool $archived = true): array
{
$endpoint = '/crm/v3/owners';
$queryParams = [
'archived' => $archived ? 'true' : 'false',
];
$queryString = http_build_query($queryParams);
$owners = [];
try {
$response = $this->makeRequest(endpoint: $endpoint, queryString: $queryString);
$responseData = $response?->toArray();
foreach ($responseData['results'] as $result) {
try {
$owners[] = Owner::create($result);
} catch (Throwable $e) {
$this->log->error('[HubSpot] Failed to process owner data', [
'result' => $result,
'error' => $e->getMessage(),
]);
continue;
}
}
} catch (Throwable $e) {
$this->log->error('HubSpot] Failed to fetch owners', [
'archived' => $archived,
'error' => $e->getMessage(),
]);
return [];
}
return $owners;
}
public function getMeeting(string $engagementId): ObjectWithAssociations
{
return $this->getNewInstance()->crm()->objects()->basicApi()
->getById('meeting', $engagementId, null, 'contact,company,deal');
}
public function deleteEngagement(string $engagementId): void
{
$this->getInstance()->engagements()->delete((int) $engagementId);
}
public function getAssociationsData(array $ids, string $fromObject, string $toObject): array
{
$associationData = [];
$idChunks = array_chunk($ids, self::ASSOCIATIONS_BATCH_SIZE_LIMIT);
foreach ($idChunks as $idChunk) {
try {
$batchInput = new \HubSpot\Client\Crm\Associations\Model\BatchInputPublicObjectId();
$batchInput->setInputs(array_map(function ($id) {
$publicObjectId = new \HubSpot\Client\Crm\Associations\Model\PublicObjectId();
$publicObjectId->setId($id);
return $publicObjectId;
}, $idChunk));
$associatedObjectsData = $this
->getNewInstance()
->crm()
->associations()
->batchApi()
->read($fromObject, $toObject, $batchInput);
if ($associatedObjectsData instanceof \HubSpot\Client\Crm\Associations\Model\BatchResponsePublicAssociationMulti) {
foreach ($associatedObjectsData->getResults() as $association) {
$from = $association->getFrom()->getId();
$toAssociations = $association->getTo();
if (! empty($toAssociations)) {
$associationData[$from] = array_map(function ($item) {
return $item->getId();
}, $toAssociations);
}
}
}
// } catch (RateLimitException $e) {
// throw $e;
} catch (\Exception $e) {
$this->log->error('[Hubspot] Failed to fetch associations', [
'from_object' => $fromObject,
'to_object' => $toObject,
'reason' => $e->getMessage(),
]);
}
}
return $associationData;
}
/**
* @throws \Exception
*/
private function getNoteAssociationType(NoteObject $noteObject): string
{
return match($noteObject) {
NoteObject::Opportunity => 'note_to_deal',
NoteObject::Lead, NoteObject::Contact => 'note_to_contact', // or 'note_to_lead' if your portal supports it
NoteObject::Account => 'note_to_company',
NoteObject::Call, NoteObject::Event => throw new \Exception('Not supported'),
};
}
/**
* @throws \Exception
*/
private function getNoteObject(NoteObject $noteObject): string
{
return match($noteObject) {
NoteObject::Opportunity => 'deal',
NoteObject::Lead, NoteObject::Contact => 'contact',
NoteObject::Account => 'company',
NoteObject::Call, NoteObject::Event => throw new \Exception('Not supported'),
};
}
public function addAssociations(string $objectType, string $associationType, array $payload): Response
{
$endpoint = "/crm/v4/associations/$objectType/$associationType/batch/create";
return $this->makeRequest($endpoint, 'POST', $payload);
}
public function removeAssociations(string $objectType, string $associationType, array $payload): Response
{
$endpoint = "/crm/v4/associations/$objectType/$associationType/batch/archive";
return $this->makeRequest($endpoint, 'POST', $payload);
}
}
Show Replace Field
Search History
429
New Line
Match Case
Words
Regex
Replace History
Replace
New Line
Preserve case
1/4
Previous Occurrence
Next Occurrence
Filter Search Results
Open in Window, Multiple Cursors
Click to highlight
Close
Sync Changes
Hide This Notification
Code changed:
Hide
54
Previous Highlighted Error
Next Highlighted Error
[2026-05-11 11:08:45] local.INFO: Jiminny\Console\Commands\Command::run Memory usage before starting command {"command":"mailbox:batch:retry-failed","memoryBeforeCommandInMb":60.0,"memoryPeakBeforeCommandInMb":99.727} {"correlation_id":"43b1fb67-9aac-4fc6-9ced-689ecda5c548","trace_id":"60028d0e-dcd8-496a-a7ba-3a04b8d646e2"}
[2026-05-11 11:08:45] local.INFO: [Commands/AsyncUpdateEsEntities] Starting ES update worker {"pid":72650,"workerId":"","target":"activities"} {"correlation_id":"6d49ffdc-2ed7-4eae-a1ee-e25ca95bbea8","trace_id":"906573b5-005c-4820-8a32-3b0703ea86dd"}
[2026-05-11 11:08:46] local.INFO: Jiminny\Console\Commands\Command::run Memory usage for command {"command":"mailbox:batch:retry-failed","memoryBeforeCommandInMb":60.0,"memoryAfterCommandInMB":60.0,"memoryPeakBeforeCommandInMb":99.727,"memoryPeakAfterCommandInMB":99.727} {"correlation_id":"43b1fb67-9aac-4fc6-9ced-689ecda5c548","trace_id":"60028d0e-dcd8-496a-a7ba-3a04b8d646e2"}
[2026-05-11 11:09:12] local.INFO: [MatchActivityCrmData] Starting CRM data matching {"activity":615092,"remote_search":true,"set_configuration":2,"old_state":{"lead_id":null,"contact_id":null,"account_id":26,"opportunity_id":22,"stage_id":89}} {"correlation_id":"f33d47cb-76c6-4c27-a641-48cbf69e623d","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:12] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":615092} {"correlation_id":"f33d47cb-76c6-4c27-a641-48cbf69e623d","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:12] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":615092,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"f33d47cb-76c6-4c27-a641-48cbf69e623d","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:12] local.INFO: [MatchActivityCrmData] Participants old state {"activity":615092,"participants":[{"id":1004102,"user_id":null,"contact_id":null,"lead_id":null},{"id":1004103,"user_id":89,"contact_id":null,"lead_id":null}]} {"correlation_id":"f33d47cb-76c6-4c27-a641-48cbf69e623d","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:12] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"f33d47cb-76c6-4c27-a641-48cbf69e623d","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:12] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"f33d47cb-76c6-4c27-a641-48cbf69e623d","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:12] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"f33d47cb-76c6-4c27-a641-48cbf69e623d","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:12] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"f33d47cb-76c6-4c27-a641-48cbf69e623d","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:12] local.INFO: [Prospect match] Cache miss, calling the API {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"f33d47cb-76c6-4c27-a641-48cbf69e623d","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:13] local.INFO: [Hubspot] Failed to fetch contact {"email":"[EMAIL]","reason":"[404] Client error: `GET https://api.hubapi.com/crm/v3/objects/contacts/nikolay.nikolov%40jiminny.com?properties=email%2Cfirstname%2Clastname%2Ccountry%2Cphone%2Cmobilephone%2Cjobtitle%2Chubspot_owner_id%2Cassociatedcompanyid%2Cphoto&archived=0&idProperty=email` resulted in a `404 Not Found` response"} {"correlation_id":"f33d47cb-76c6-4c27-a641-48cbf69e623d","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:13] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"f33d47cb-76c6-4c27-a641-48cbf69e623d","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:13] local.WARNING: [Hubspot] No retry-after header or known message, using default {"exception_class":"SevenShores\\Hubspot\\Exceptions\\BadRequest","message":""} {"correlation_id":"f33d47cb-76c6-4c27-a641-48cbf69e623d","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:13] local.WARNING: [Hubspot] Received 429 from API {"team_id":2,"config_id":2,"retry_after":10,"message":"","reason":"Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response:
{\"status\":\"error\",\"message\":\"You have reached your secondly limit.\",\"errorType\":\"RATE_LIMIT\",\"correlationId\":\"019e16ba-1 (truncated...)
"} {"correlation_id":"f33d47cb-76c6-4c27-a641-48cbf69e623d","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:13] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":10,"delay":12} {"correlation_id":"f33d47cb-76c6-4c27-a641-48cbf69e623d","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [MatchActivityCrmData] Starting CRM data matching {"activity":614436,"remote_search":true,"set_configuration":2,"old_state":{"lead_id":null,"contact_id":null,"account_id":26,"opportunity_id":22,"stage_id":89}} {"correlation_id":"ccafe863-7885-4971-96fb-87ef6dd4adf3","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":614436} {"correlation_id":"ccafe863-7885-4971-96fb-87ef6dd4adf3","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":614436,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"ccafe863-7885-4971-96fb-87ef6dd4adf3","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [MatchActivityCrmData] Participants old state {"activity":614436,"participants":[{"id":1002751,"user_id":null,"contact_id":null,"lead_id":null},{"id":1002752,"user_id":89,"contact_id":null,"lead_id":null}]} {"correlation_id":"ccafe863-7885-4971-96fb-87ef6dd4adf3","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"ccafe863-7885-4971-96fb-87ef6dd4adf3","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"ccafe863-7885-4971-96fb-87ef6dd4adf3","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"ccafe863-7885-4971-96fb-87ef6dd4adf3","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"ccafe863-7885-4971-96fb-87ef6dd4adf3","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [Prospect match] Cache / local search hit {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"ccafe863-7885-4971-96fb-87ef6dd4adf3","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"ccafe863-7885-4971-96fb-87ef6dd4adf3","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":10,"delay":10} {"correlation_id":"ccafe863-7885-4971-96fb-87ef6dd4adf3","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [MatchActivityCrmData] Starting CRM data matching {"activity":614382,"remote_search":true,"set_configuration":2,"old_state":{"lead_id":null,"contact_id":null,"account_id":26,"opportunity_id":22,"stage_id":89}} {"correlation_id":"f00a4506-adfe-4fdc-b932-e6d2bc751fde","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":614382} {"correlation_id":"f00a4506-adfe-4fdc-b932-e6d2bc751fde","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":614382,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"f00a4506-adfe-4fdc-b932-e6d2bc751fde","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [MatchActivityCrmData] Participants old state {"activity":614382,"participants":[{"id":1002632,"user_id":null,"contact_id":null,"lead_id":null},{"id":1002633,"user_id":89,"contact_id":null,"lead_id":null}]} {"correlation_id":"f00a4506-adfe-4fdc-b932-e6d2bc751fde","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"f00a4506-adfe-4fdc-b932-e6d2bc751fde","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"f00a4506-adfe-4fdc-b932-e6d2bc751fde","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"f00a4506-adfe-4fdc-b932-e6d2bc751fde","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"f00a4506-adfe-4fdc-b932-e6d2bc751fde","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [Prospect match] Cache / local search hit {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"f00a4506-adfe-4fdc-b932-e6d2bc751fde","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"f00a4506-adfe-4fdc-b932-e6d2bc751fde","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":10,"delay":12} {"correlation_id":"f00a4506-adfe-4fdc-b932-e6d2bc751fde","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [MatchActivityCrmData] Starting CRM data matching {"activity":614381,"remote_search":true,"set_configuration":2,"old_state":{"lead_id":null,"contact_id":null,"account_id":26,"opportunity_id":22,"stage_id":89}} {"correlation_id":"36bd73f5-17f9-4f70-8254-2214543c7f8e","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":614381} {"correlation_id":"36bd73f5-17f9-4f70-8254-2214543c7f8e","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":614381,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"36bd73f5-17f9-4f70-8254-2214543c7f8e","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [MatchActivityCrmData] Participants old state {"activity":614381,"participants":[{"id":1002630,"user_id":null,"contact_id":null,"lead_id":null},{"id":1002631,"user_id":89,"contact_id":null,"lead_id":null}]} {"correlation_id":"36bd73f5-17f9-4f70-8254-2214543c7f8e","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"36bd73f5-17f9-4f70-8254-2214543c7f8e","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"36bd73f5-17f9-4f70-8254-2214543c7f8e","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"36bd73f5-17f9-4f70-8254-2214543c7f8e","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"36bd73f5-17f9-4f70-8254-2214543c7f8e","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [Prospect match] Cache / local search hit {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"36bd73f5-17f9-4f70-8254-2214543c7f8e","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"36bd73f5-17f9-4f70-8254-2214543c7f8e","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":10,"delay":10} {"correlation_id":"36bd73f5-17f9-4f70-8254-2214543c7f8e","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:15] local.INFO: [MatchActivityCrmData] Starting CRM data matching {"activity":614378,"remote_search":true,"set_configuration":2,"old_state":{"lead_id":null,"contact_id":6167,"account_id":null,"opportunity_id":null,"stage_id":null}} {"correlation_id":"a4a3a058-ec22-4f04-bb14-a9bff18ce214","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:15] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":614378} {"correlation_id":"a4a3a058-ec22-4f04-bb14-a9bff18ce214","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:15] local.INFO: [ AsyncU...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JY-20725-handle-HS-search-rate-limit, menu","depth":5,"on_screen":true,"help_text":"Git Branch: JY-20725-handle-HS-search-rate-limit","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"HandleHubspotRateLimitTest","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'HandleHubspotRateLimitTest'","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Debug 'HandleHubspotRateLimitTest'","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More Actions","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JetBrains AI","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Search Everywhere","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"IDE and Project Settings","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.088194445,"height":0.027777778},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"1","depth":4,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"2","depth":4,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"67","depth":4,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"3","depth":4,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Next Highlighted Error","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Services\\Crm\\Hubspot;\n\nuse HubSpot\\Client\\Crm\\Deals\\ApiException as DealApiException;\nuse HubSpot\\Client\\Crm\\Contacts\\ApiException as ContactApiException;\nuse HubSpot\\Client\\Crm\\Companies\\ApiException as CompanyApiException;\nuse HubSpot\\Client\\Crm\\Contacts\\Model\\SimplePublicObjectWithAssociations as ContactsWithAssociations;\nuse HubSpot\\Client\\Crm\\Companies\\Model\\SimplePublicObjectWithAssociations as CompaniesWithAssociations;\nuse HubSpot\\Client\\Crm\\Deals\\Model\\SimplePublicObjectWithAssociations as DealWithAssociations;\nuse HubSpot\\Client\\Crm\\Objects\\Model\\SimplePublicObjectInput;\nuse HubSpot\\Client\\Crm\\Objects\\Model\\SimplePublicObjectWithAssociations as ObjectWithAssociations;\nuse HubSpot\\Client\\Crm\\Pipelines\\Model\\Error;\nuse HubSpot\\Client\\Crm\\Pipelines\\Model\\PipelineStage;\nuse HubSpot\\Client\\Crm\\Properties\\Model\\Property;\nuse HubSpot\\Discovery\\Discovery;\nuse Jiminny\\Exceptions\\CrmException;\nuse Jiminny\\Exceptions\\RateLimitException;\nuse Jiminny\\Exceptions\\SocialAccountTokenInvalidException;\nuse Jiminny\\Jobs\\Crm\\NoteObject;\nuse Jiminny\\Models\\Crm\\Field;\nuse Jiminny\\Services\\Crm\\BaseClient;\nuse Jiminny\\Services\\Crm\\Hubspot\\DTO\\Response\\Owner;\nuse Jiminny\\Services\\SocialAccountService;\nuse SevenShores\\Hubspot\\Exceptions\\BadRequest;\nuse SevenShores\\Hubspot\\Exceptions\\HubspotException;\nuse SevenShores\\Hubspot\\Factory;\nuse SevenShores\\Hubspot\\Http\\Response;\nuse Jiminny\\Services\\Crm\\Hubspot\\Pagination\\HubspotPaginationService;\nuse Illuminate\\Support\\Facades\\Redis;\nuse Throwable;\n\n/**\n * @phpstan-type CrmFieldOption array{id:string, label:string, value?:string}\n */\nclass Client extends BaseClient implements HubspotClientInterface\n{\n public const string MIN_API_VERSION = '2';\n\n public const string BASE_URL = 'https://api.hubapi.com';\n\n public const int ASSOCIATIONS_BATCH_SIZE_LIMIT = 1000;\n\n private HubspotPaginationService $paginationService;\n private HubspotTokenManager $tokenManager;\n\n public function __construct(\n SocialAccountService $socialAccountService,\n HubspotPaginationService $paginationService,\n HubspotTokenManager $tokenManager\n ) {\n parent::__construct($socialAccountService);\n $this->paginationService = $paginationService;\n $this->tokenManager = $tokenManager;\n\n $this->setBaseUrl(self::BASE_URL);\n $this->setVersion(self::MIN_API_VERSION);\n }\n\n /**\n * Reacts to a rate limits (429) from HubSpot by translating it\n * into a RateLimitException carrying retry_after.\n *\n * Wrap any outbound HubSpot call (SDK or raw HTTP) like:\n *\n * $this->executeRequest(fn () => $this->getNewInstance()->crm()->...);\n *\n * @template T\n * @param callable(): T $apiCall\n * @return T\n *\n * @throws RateLimitException\n */\n private function executeRequest(callable $apiCall)\n {\n $cacheKey = $this->getRateLimitCacheKey();\n\n $cachedRetryAfter = Redis::get($cacheKey);\n if (is_string($cachedRetryAfter) && is_numeric($cachedRetryAfter)) {\n throw new RateLimitException(\n 'Hubspot rate limit (cached circuit-breaker)',\n (int) $cachedRetryAfter,\n );\n }\n\n try {\n return $apiCall();\n } catch (Throwable $e) {\n if ($this->isHubspotRateLimit($e)) {\n $retryAfter = $this->parseRetryAfter($e);\n\n Redis::setex($cacheKey, $retryAfter, (string) $retryAfter);\n\n $this->log->warning('[Hubspot] Received 429 from API', [\n 'team_id' => $this->config->team_id,\n 'config_id' => $this->config->getId(),\n 'retry_after' => $retryAfter,\n 'reason' => $e->getMessage(),\n ]);\n\n throw new RateLimitException('Hubspot returned 429', $retryAfter, $e);\n }\n\n throw $e;\n }\n }\n\n private function getRateLimitCacheKey(): string\n {\n return sprintf('hubspot:ratelimit:portal:%d', $this->config->getId());\n }\n\n public function isHubspotRateLimit(Throwable $e): bool\n {\n if ($e instanceof BadRequest\n || $e instanceof DealApiException\n || $e instanceof ContactApiException\n || $e instanceof CompanyApiException\n || $e instanceof \\GuzzleHttp\\Exception\\RequestException\n ) {\n return (int) $e->getCode() === 429;\n }\n\n return false;\n }\n\n public function parseRetryAfter(Throwable $e): int\n {\n if (method_exists($e, 'getResponseHeaders')) {\n $headers = $e->getResponseHeaders() ?: [];\n $value = $headers['Retry-After'] ?? $headers['retry-after'] ?? null;\n if (is_array($value)) {\n $value = $value[0] ?? null;\n }\n if (is_numeric($value)) {\n return (int) $value;\n }\n }\n\n $message = strtolower($e->getMessage());\n\n if (str_contains($message, 'daily')) {\n return 600;\n }\n if (str_contains($message, 'ten secondly')) {\n return 10;\n }\n if (str_contains($message, 'secondly')) {\n return 1;\n }\n\n $this->log->warning('[Hubspot] No retry-after header or known message, using default', [\n 'exception_class' => get_class($e),\n 'message' => $message,\n ]);\n\n return 10;\n }\n\n public function parseMessage(Throwable $e): string\n {\n if (! method_exists($e, 'getResponseBody')) {\n return '';\n }\n\n $body = $e->getResponseBody();\n if (is_string($body)) {\n $body = json_decode($body, true) ?? [];\n }\n\n if (! is_array($body)) {\n return '';\n }\n\n return (string) ($body['message'] ?? '');\n }\n\n public function getMinimumApiVersion(): string\n {\n return self::MIN_API_VERSION;\n }\n\n public function getInstance(): Factory\n {\n return new Factory([\n 'key' => $this->accessToken,\n 'oauth2' => true,\n 'base_url' => $this->baseUrl,\n ]);\n }\n\n public function getNewInstance(): Discovery\n {\n return \\HubSpot\\Factory::createWithAccessToken($this->accessToken);\n }\n\n /**\n * Secondly and daily limits for Hubspot API\n *\n * Product Tier: Free & Starter | Professional & Enterprise | API add-on (any tier)\n * Burst: 100/10 seconds | 150/10 seconds | 200/10 seconds\n * Daily: 250,000 | 500,000 | 1,000,000\n *\n * Official documentation states: The search endpoints are rate limited to five requests per second.\n * Since with 5 RPS were still hitting secondly rate limits we lowered it to 4\n */\n public function getPaginatedData(array $payload, string $type, int $offset = 0): array\n {\n $total = 0;\n $lastId = null;\n $rows = [];\n foreach ($this->getPaginatedDataGenerator($payload, $type, $offset, $total, $lastId) as $row) {\n $rows[] = $row;\n }\n\n return ['results' => $rows, 'total' => $total, 'last_record' => $lastId];\n }\n\n /**\n * @throws HubspotException\n * @throws SocialAccountTokenInvalidException\n * @throws BadRequest\n */\n public function getPaginatedDataGenerator(\n array $payload,\n string $type,\n int $offset = 0,\n int &$total = 0,\n ?string &$lastRecordId = null\n ): \\Generator {\n return $this->paginationService->getPaginatedDataGenerator(\n $this,\n $payload,\n $type,\n $offset,\n $total,\n $lastRecordId\n );\n }\n\n /**\n * Execute a search request against HubSpot CRM objects with rate limiting.\n *\n * @param string $objectType The object type ('deals', 'companies', 'contacts', 'calls')\n * @param array<string, mixed> $payload The search payload with filters, sorts, properties, etc.\n * @return array The search response with 'results', 'total', 'paging' keys\n * @throws RateLimitException When rate limit is hit\n * @throws HubspotException On API errors\n */\n public function search(string $objectType, array $payload): array\n {\n $endpoint = self::BASE_URL . \"/crm/v3/objects/{$objectType}/search\";\n\n return $this->executeRequest(function () use ($endpoint, $payload) {\n $response = $this->getInstance()->getClient()->request('POST', $endpoint, ['json' => $payload]);\n\n return $response->toArray();\n });\n }\n\n /**\n * @throws DealApiException\n * @throws CrmException\n */\n public function getOpportunityById(string $crmId, array $fields): array\n {\n try {\n $deal = $this->getNewInstance()->crm()->deals()->basicApi()->getById(\n $crmId,\n implode(',', $fields),\n 'companies,contacts'\n );\n } catch (DealApiException $e) {\n $this->log->info('[Hubspot] Failed to fetch opportunity', [\n 'crm_id' => $crmId,\n 'reason' => $e->getMessage(),\n ]);\n\n throw $e;\n }\n\n if (! $deal instanceof DealWithAssociations) {\n throw new CrmException('Deal not found');\n }\n\n return [\n 'id' => $deal->getId(),\n 'properties' => $deal->getProperties(),\n 'associations' => $deal->getAssociations(),\n ];\n }\n\n /**\n * Generic batch read method for HubSpot objects\n *\n * @param string $objectType The object type ('deals', 'companies', 'contacts')\n * @param array<string> $crmIds Array of HubSpot object IDs (max 100)\n * @param array<string> $fields Array of property names to fetch\n *\n * @return array<string, array> Array keyed by CRM ID with object data\n */\n private function batchReadObjects(string $objectType, array $crmIds, array $fields): array\n {\n if (empty($crmIds)) {\n return [];\n }\n\n $this->validateBatchSize($objectType, $crmIds);\n $this->ensureValidToken();\n\n try {\n $batchConfig = $this->createBatchConfiguration($objectType);\n $batchReadRequest = $this->prepareBatchRequest($batchConfig, $crmIds, $fields);\n $response = $batchConfig['api']->read($batchReadRequest);\n\n $this->validateApiResponse($response, $objectType);\n\n $results = $this->processApiResults($response);\n $this->logBatchResults($objectType, $crmIds, $results);\n\n return $results;\n } catch (\\Throwable $e) {\n $this->handleBatchError($e, $objectType, $crmIds);\n }\n }\n\n private function validateBatchSize(string $objectType, array $crmIds): void\n {\n if (count($crmIds) > 100) {\n throw new \\InvalidArgumentException(\"Batch size cannot exceed 100 {$objectType}\");\n }\n }\n\n private function createBatchConfiguration(string $objectType): array\n {\n $configurations = [\n 'deals' => [\n 'batchReadRequest' => new \\HubSpot\\Client\\Crm\\Deals\\Model\\BatchReadInputSimplePublicObjectId(),\n 'inputClass' => \\HubSpot\\Client\\Crm\\Deals\\Model\\SimplePublicObjectId::class,\n 'api' => $this->getNewInstance()->crm()->deals()->batchApi(),\n ],\n 'companies' => [\n 'batchReadRequest' => new \\HubSpot\\Client\\Crm\\Companies\\Model\\BatchReadInputSimplePublicObjectId(),\n 'inputClass' => \\HubSpot\\Client\\Crm\\Companies\\Model\\SimplePublicObjectId::class,\n 'api' => $this->getNewInstance()->crm()->companies()->batchApi(),\n ],\n 'contacts' => [\n 'batchReadRequest' => new \\HubSpot\\Client\\Crm\\Contacts\\Model\\BatchReadInputSimplePublicObjectId(),\n 'inputClass' => \\HubSpot\\Client\\Crm\\Contacts\\Model\\SimplePublicObjectId::class,\n 'api' => $this->getNewInstance()->crm()->contacts()->batchApi(),\n ],\n ];\n\n if (! isset($configurations[$objectType])) {\n throw new \\InvalidArgumentException(\"Unsupported object type: {$objectType}\");\n }\n\n return $configurations[$objectType];\n }\n\n private function prepareBatchRequest(array $batchConfig, array $crmIds, array $fields): object\n {\n $batchReadRequest = $batchConfig['batchReadRequest'];\n $inputClass = $batchConfig['inputClass'];\n\n $inputs = array_map(function ($crmId) use ($inputClass) {\n $input = new $inputClass();\n $input->setId($crmId);\n\n return $input;\n }, $crmIds);\n\n $batchReadRequest->setInputs($inputs);\n $batchReadRequest->setProperties($fields);\n\n return $batchReadRequest;\n }\n\n private function validateApiResponse($response, string $objectType): void\n {\n if (! $response) {\n throw new CrmException(\"HubSpot API returned null response for {$objectType} batch read\");\n }\n }\n\n private function processApiResults($response): array\n {\n $results = [];\n $responseResults = $response->getResults();\n\n if ($responseResults) {\n foreach ($responseResults as $object) {\n if ($object && $object->getId()) {\n $results[$object->getId()] = [\n 'id' => $object->getId(),\n 'properties' => $object->getProperties() ?: [],\n ];\n }\n }\n }\n\n return $results;\n }\n\n private function logBatchResults(string $objectType, array $crmIds, array $results): void\n {\n $this->log->info(\"[HubSpot] Batch fetched {$objectType}\", [\n 'requested_count' => count($crmIds),\n 'returned_count' => count($results),\n 'crm_ids' => $crmIds,\n ]);\n }\n\n private function handleBatchError(\\Throwable $e, string $objectType, array $crmIds): void\n {\n $errorMessage = $e->getMessage() ?: 'Unknown error';\n $errorTrace = $e->getTraceAsString() ?: 'No trace available';\n\n $this->log->error(\"[HubSpot] Failed to batch fetch {$objectType}\", [\n 'crm_ids' => $crmIds,\n 'error' => $errorMessage,\n 'trace' => $errorTrace,\n ]);\n\n throw new CrmException(\"Failed to batch fetch {$objectType}: \" . $errorMessage);\n }\n\n /**\n * Batch read multiple opportunities by their CRM IDs\n *\n * @param array<string> $crmIds Array of HubSpot deal IDs (max 100)\n * @param array<string> $fields Array of property names to fetch\n *\n * @return array<string, array> Array keyed by CRM ID with opportunity data\n */\n public function getOpportunitiesByIds(array $crmIds, array $fields): array\n {\n return $this->batchReadObjects('deals', $crmIds, $fields);\n }\n\n /**\n * Batch read multiple companies by their CRM IDs\n *\n * @param array<string> $crmIds Array of HubSpot company IDs (max 100)\n * @param array<string> $fields Array of property names to fetch\n *\n * @return array<string, array> Array keyed by CRM ID with company data\n */\n public function getCompaniesByIds(array $crmIds, array $fields): array\n {\n return $this->batchReadObjects('companies', $crmIds, $fields);\n }\n\n /**\n * Batch read multiple contacts by their CRM IDs\n *\n * @param array<string> $crmIds Array of HubSpot contact IDs (max 100)\n * @param array<string> $fields Array of property names to fetch\n *\n * @return array<string, array> Array keyed by CRM ID with contact data\n */\n public function getContactsByIds(array $crmIds, array $fields): array\n {\n return $this->batchReadObjects('contacts', $crmIds, $fields);\n }\n\n /**\n * @throws CompanyApiException\n * @throws CrmException\n */\n public function getAccountById(string $crmId, array $fields): array\n {\n try {\n $company = $this->getNewInstance()->crm()->companies()->basicApi()->getById(\n $crmId,\n implode(',', $fields),\n );\n } catch (CompanyApiException $e) {\n $this->log->info('[Hubspot] Failed to fetch account', [\n 'crm_id' => $crmId,\n 'reason' => $e->getMessage(),\n ]);\n\n throw $e;\n }\n\n if (! $company instanceof CompaniesWithAssociations) {\n throw new CrmException('Account not found');\n }\n\n return [\n 'id' => $company->getId(),\n 'properties' => $company->getProperties(),\n ];\n }\n\n /**\n * @throws ContactApiException\n * @throws CrmException\n */\n public function getContactById(string $crmId, array $fields): array\n {\n try {\n $contact = $this->getNewInstance()->crm()->contacts()->basicApi()->getById(\n $crmId,\n implode(',', $fields)\n );\n } catch (ContactApiException $e) {\n $this->log->info('[Hubspot] Failed to fetch contact', [\n 'crm_id' => $crmId,\n 'reason' => $e->getMessage(),\n ]);\n\n throw $e;\n }\n\n if (! $contact instanceof ContactsWithAssociations) {\n throw new CrmException('Contact not found');\n }\n\n return [\n 'id' => $contact->getId(),\n 'properties' => $contact->getProperties(),\n ];\n }\n\n /**\n * This is email search request that Hubspot offers as GET (more generous quota)\n */\n public function getContactByEmail(string $email, array $fields = []): array\n {\n try {\n $contact = $this->getNewInstance()->crm()->contacts()->basicApi()->getById(\n $email,\n implode(',', $fields),\n null,\n false,\n 'email'\n );\n\n return [\n 'id' => $contact->getId(),\n 'properties' => $contact->getProperties(),\n ];\n } catch (ContactApiException $e) {\n $this->log->info('[Hubspot] Failed to fetch contact', [\n 'email' => $email,\n 'reason' => $e->getMessage(),\n ]);\n\n return [];\n }\n }\n\n /**\n * @throws CrmException\n */\n public function fetchProperty(string $objectType, string $propertyId): Property\n {\n $result = $this->getNewInstance()->crm()->properties()->coreApi()->getByName($objectType, $propertyId);\n\n if (! $result instanceof Property) {\n $this->log->error('[Hubspot] Failed to fetch property', [\n 'object_type' => $objectType,\n 'property_id' => $propertyId,\n 'reason' => $result->getMessage(),\n ]);\n\n throw new CrmException('Failed to fetch property');\n }\n\n return $result;\n }\n\n /**\n * @return array<CrmFieldOption>\n */\n public function fetchPropertyOptions(string $objectType, string $propertyId): array\n {\n /** @var array<CrmFieldOption> */\n return $this->fetchProperty($objectType, $propertyId)->getOptions();\n }\n\n /**\n * @return array<array{id:string, label:string, deleted:bool}>\n */\n public function fetchCallDispositions(): array\n {\n /** @var Response $response */\n $response = $this->getInstance()->engagements()->getCallDispositions();\n\n /**\n * @var array<array{\n * id:string,\n * label:string,\n * deleted: bool\n * }>\n */\n return $response->toArray();\n }\n\n /**\n * @return array<CrmFieldOption>\n */\n public function fetchOpportunityPipelineStages(): array\n {\n $stages = [];\n $apiResponse = $this->getNewInstance()->crm()->pipelines()->pipelinesApi()->getAll('deals');\n\n if ($apiResponse instanceof Error) {\n $this->log->error('[Hubspot] Failed to fetch opportunity pipelines', [\n 'reason' => $apiResponse->getMessage(),\n ]);\n\n return [];\n }\n\n foreach ($apiResponse->getResults() as $pipeline) {\n $pipelineStages = array_map(\n static function (PipelineStage $stage) {\n return [\n 'id' => $stage->getId(),\n 'label' => $stage->getLabel(),\n ];\n },\n $pipeline->getStages()\n );\n\n $stages = array_merge($stages, $pipelineStages);\n }\n\n return $stages;\n }\n\n public function fetchOpportunityPipelines(): array\n {\n $pipelines = [];\n\n try {\n $apiResponse = $this->makeRequest('/crm/v3/pipelines/deals');\n } catch (\\Exception $e) {\n $this->log->info('[Hubspot] Failed to fetch opportunity pipelines', [\n 'reason' => $e->getMessage(),\n ]);\n\n return [];\n }\n\n $response = $apiResponse->toArray();\n\n foreach ($response['results'] as $pipeline) {\n $pipelines[] = [\n 'id' => $pipeline['id'],\n 'label' => $pipeline['label'],\n ];\n }\n\n return $pipelines;\n }\n\n /**\n * @return array<CrmFieldOption>\n */\n public function fetchMeetingOutcomeFieldOptions(Field $field): array\n {\n return $field->getCrmProviderId() === 'meetingOutcome'\n ? $this->fetchMeetingOutcomeTypes()\n : $this->fetchCallActivityTypes();\n }\n\n public function fetchMeetingOutcomeTypes(): array\n {\n return $this->extractMeetingTypeOptions(\n 'https://api.hubapi.com/crm/v3/properties/meeting/hs_meeting_outcome'\n );\n }\n\n public function fetchCallActivityTypes(): array\n {\n return $this->extractMeetingTypeOptions(\n 'https://api.hubapi.com/crm/v3/properties/call/hs_activity_type'\n );\n }\n\n private function extractMeetingTypeOptions(string $endpoint): array\n {\n /** @var Response $response */\n $response = $this->getInstance()\n ->getClient()\n ->request('GET', $endpoint);\n\n /**\n * @var array<array{\n * value: string,\n * label: string,\n * displayOrder: int\n * }> $optionData\n */\n $optionData = $response->toArray()['options'] ?? [];\n\n $options = [];\n foreach ($optionData as $item) {\n $options[] = [\n 'id' => $item['value'],\n 'value' => $item['value'],\n 'label' => $item['label'],\n 'display_order' => $item['displayOrder'],\n ];\n }\n\n return $options;\n }\n\n /**\n * @return array<CrmFieldOption>\n */\n public function fetchDispositionFieldOptions(): array\n {\n $options = [];\n\n $dispositions = $this->fetchCallDispositions();\n\n foreach ($dispositions as $disposition) {\n if ($disposition['deleted'] !== false) {\n continue;\n }\n\n $option['value'] = $disposition['id'];\n $option['id'] = $disposition['id'];\n $option['label'] = $disposition['label'];\n\n $options[] = $option;\n }\n\n return $options;\n }\n\n /**\n * @return array<CrmFieldOption>\n */\n public function fetchOpportunityFieldOptions(Field $field): array\n {\n if ($field->isStageField()) {\n return $this->fetchOpportunityPipelineStages();\n }\n\n if ($field->isPipelineField()) {\n return $this->fetchOpportunityPipelines();\n }\n\n return $this->fetchPropertyOptions('deals', $field->getCrmProviderId());\n }\n\n /**\n * @throws BadRequest\n * @throws HubspotException\n */\n public function makeRequest(string $endpoint, $method = 'GET', $payload = [], ?string $queryString = null)\n {\n $endpoint = self::BASE_URL . $endpoint;\n\n if ($method === 'GET') {\n return $this->getInstance()->getClient()?->request(\n method: $method,\n endpoint: $endpoint,\n query_string: $queryString\n );\n } else {\n return $this->getInstance()->getClient()->request($method, $endpoint, [\n 'json' => ($payload),\n ]);\n }\n }\n\n /**\n * @throws BadRequest\n * @throws HubspotException\n */\n public function createMeeting(array $payload): Response\n {\n $endpoint = '/crm/v3/objects/meetings';\n\n return $this->makeRequest($endpoint, 'POST', $payload);\n }\n\n /**\n * @throws BadRequest\n * @throws HubspotException\n */\n public function updateMeeting(string $meetingId, array $payload): Response\n {\n $endpoint = '/crm/v3/objects/meetings/' . $meetingId;\n\n return $this->makeRequest($endpoint, 'PATCH', $payload);\n }\n\n /**\n * @throws \\Exception\n */\n public function createNote(\n string $body,\n string $ownerId,\n int $timestamp,\n string $objectId,\n NoteObject $noteObject\n ): ?string {\n try {\n $noteInput = new SimplePublicObjectInput([\n 'properties' => [\n 'hs_note_body' => $body,\n 'hubspot_owner_id' => $ownerId,\n 'hs_timestamp' => $timestamp,\n ],\n ]);\n\n // Create note\n $note = $this->getNewInstance()->crm()->objects()->basicApi()->create('note', $noteInput);\n\n $this->getNewInstance()->crm()->objects()->associationsApi()->create(\n 'note',\n $note->getId(),\n $this->getNoteObject($noteObject),\n $objectId,\n $this->getNoteAssociationType($noteObject),\n );\n\n return $note->getId();\n } catch (\\Exception $e) {\n $this->log->error('[Hubspot] Failed to create note', [\n 'objectId' => $objectId,\n 'noteObject' => $noteObject->getObjectType(),\n 'reason' => $e->getMessage(),\n ]);\n\n \\Sentry::captureException($e);\n }\n\n return null;\n }\n\n public function updateEngagement(string $objectId, array $engagement, array $metadata): void\n {\n $this->getInstance()->engagements()->update($objectId, $engagement, $metadata);\n }\n\n public function getEngagementData(string $engagementId): array\n {\n $engagement = $this->getInstance()->engagements()->get($engagementId);\n\n return $engagement->toArray();\n }\n\n public function createEngagement(array $engagement, array $associations, array $metadata): Response\n {\n return $this->getInstance()\n ->engagements()\n ->create($engagement, $associations, $metadata);\n }\n\n public function isUnauthorizedException(\\Exception $e): bool\n {\n // Check for specific HubSpot API exception types first\n if ($e instanceof BadRequest) {\n // BadRequest can contain 401 status codes\n return $e->getCode() === 401;\n }\n\n // Check for HTTP client exceptions with status codes\n if ($e instanceof \\GuzzleHttp\\Exception\\RequestException && $e->hasResponse()) {\n $response = $e->getResponse();\n if ($response !== null) {\n return $response->getStatusCode() === 401;\n }\n }\n\n // Check for Guzzle HTTP exceptions\n if ($e instanceof \\GuzzleHttp\\Exception\\ClientException) {\n return $e->getCode() === 401;\n }\n\n // Fallback to string matching as last resort, but be more specific\n $message = strtolower($e->getMessage());\n\n return str_contains($message, '401 unauthorized') ||\n str_contains($message, 'http 401') ||\n str_contains($message, 'status code 401') ||\n (preg_match('/\\b401\\b/', $message) && str_contains($message, 'unauthorized'));\n }\n\n /**\n * Validates and refreshes the access token if needed before API requests.\n * This ensures long-running processes don't fail due to token expiration.\n *\n * @throws SocialAccountTokenInvalidException\n */\n public function ensureValidToken(): void\n {\n if ($this->oauthAccount === null) {\n return;\n }\n\n $newToken = $this->tokenManager->ensureValidToken($this->oauthAccount);\n if ($newToken !== null) {\n $this->accessToken = $newToken;\n }\n }\n\n public function getConfig()\n {\n return $this->config;\n }\n\n // returns only active (archived=false)\n public function getOwners(): array\n {\n return $this->getNewInstance()->crm()->owners()->getAll();\n }\n\n /**\n * @param bool $archived\n *\n * @return array<Owner>|[]\n */\n public function getOwnersArchived(bool $archived = true): array\n {\n $endpoint = '/crm/v3/owners';\n $queryParams = [\n 'archived' => $archived ? 'true' : 'false',\n ];\n $queryString = http_build_query($queryParams);\n\n $owners = [];\n\n try {\n $response = $this->makeRequest(endpoint: $endpoint, queryString: $queryString);\n $responseData = $response?->toArray();\n\n foreach ($responseData['results'] as $result) {\n try {\n $owners[] = Owner::create($result);\n } catch (Throwable $e) {\n $this->log->error('[HubSpot] Failed to process owner data', [\n 'result' => $result,\n 'error' => $e->getMessage(),\n ]);\n\n continue;\n }\n }\n } catch (Throwable $e) {\n $this->log->error('HubSpot] Failed to fetch owners', [\n 'archived' => $archived,\n 'error' => $e->getMessage(),\n ]);\n\n return [];\n }\n\n return $owners;\n }\n\n public function getMeeting(string $engagementId): ObjectWithAssociations\n {\n return $this->getNewInstance()->crm()->objects()->basicApi()\n ->getById('meeting', $engagementId, null, 'contact,company,deal');\n }\n\n public function deleteEngagement(string $engagementId): void\n {\n $this->getInstance()->engagements()->delete((int) $engagementId);\n }\n\n public function getAssociationsData(array $ids, string $fromObject, string $toObject): array\n {\n $associationData = [];\n $idChunks = array_chunk($ids, self::ASSOCIATIONS_BATCH_SIZE_LIMIT);\n\n foreach ($idChunks as $idChunk) {\n try {\n $batchInput = new \\HubSpot\\Client\\Crm\\Associations\\Model\\BatchInputPublicObjectId();\n $batchInput->setInputs(array_map(function ($id) {\n $publicObjectId = new \\HubSpot\\Client\\Crm\\Associations\\Model\\PublicObjectId();\n $publicObjectId->setId($id);\n\n return $publicObjectId;\n }, $idChunk));\n\n $associatedObjectsData = $this\n ->getNewInstance()\n ->crm()\n ->associations()\n ->batchApi()\n ->read($fromObject, $toObject, $batchInput);\n\n if ($associatedObjectsData instanceof \\HubSpot\\Client\\Crm\\Associations\\Model\\BatchResponsePublicAssociationMulti) {\n foreach ($associatedObjectsData->getResults() as $association) {\n $from = $association->getFrom()->getId();\n $toAssociations = $association->getTo();\n\n if (! empty($toAssociations)) {\n $associationData[$from] = array_map(function ($item) {\n return $item->getId();\n }, $toAssociations);\n }\n }\n }\n// } catch (RateLimitException $e) {\n// throw $e;\n } catch (\\Exception $e) {\n $this->log->error('[Hubspot] Failed to fetch associations', [\n 'from_object' => $fromObject,\n 'to_object' => $toObject,\n 'reason' => $e->getMessage(),\n ]);\n }\n }\n\n return $associationData;\n }\n\n /**\n * @throws \\Exception\n */\n private function getNoteAssociationType(NoteObject $noteObject): string\n {\n return match($noteObject) {\n NoteObject::Opportunity => 'note_to_deal',\n NoteObject::Lead, NoteObject::Contact => 'note_to_contact', // or 'note_to_lead' if your portal supports it\n NoteObject::Account => 'note_to_company',\n NoteObject::Call, NoteObject::Event => throw new \\Exception('Not supported'),\n };\n }\n\n /**\n * @throws \\Exception\n */\n private function getNoteObject(NoteObject $noteObject): string\n {\n return match($noteObject) {\n NoteObject::Opportunity => 'deal',\n NoteObject::Lead, NoteObject::Contact => 'contact',\n NoteObject::Account => 'company',\n NoteObject::Call, NoteObject::Event => throw new \\Exception('Not supported'),\n };\n }\n\n public function addAssociations(string $objectType, string $associationType, array $payload): Response\n {\n $endpoint = \"/crm/v4/associations/$objectType/$associationType/batch/create\";\n\n return $this->makeRequest($endpoint, 'POST', $payload);\n }\n\n public function removeAssociations(string $objectType, string $associationType, array $payload): Response\n {\n $endpoint = \"/crm/v4/associations/$objectType/$associationType/batch/archive\";\n\n return $this->makeRequest($endpoint, 'POST', $payload);\n }\n}","depth":4,"on_screen":true,"value":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Services\\Crm\\Hubspot;\n\nuse HubSpot\\Client\\Crm\\Deals\\ApiException as DealApiException;\nuse HubSpot\\Client\\Crm\\Contacts\\ApiException as ContactApiException;\nuse HubSpot\\Client\\Crm\\Companies\\ApiException as CompanyApiException;\nuse HubSpot\\Client\\Crm\\Contacts\\Model\\SimplePublicObjectWithAssociations as ContactsWithAssociations;\nuse HubSpot\\Client\\Crm\\Companies\\Model\\SimplePublicObjectWithAssociations as CompaniesWithAssociations;\nuse HubSpot\\Client\\Crm\\Deals\\Model\\SimplePublicObjectWithAssociations as DealWithAssociations;\nuse HubSpot\\Client\\Crm\\Objects\\Model\\SimplePublicObjectInput;\nuse HubSpot\\Client\\Crm\\Objects\\Model\\SimplePublicObjectWithAssociations as ObjectWithAssociations;\nuse HubSpot\\Client\\Crm\\Pipelines\\Model\\Error;\nuse HubSpot\\Client\\Crm\\Pipelines\\Model\\PipelineStage;\nuse HubSpot\\Client\\Crm\\Properties\\Model\\Property;\nuse HubSpot\\Discovery\\Discovery;\nuse Jiminny\\Exceptions\\CrmException;\nuse Jiminny\\Exceptions\\RateLimitException;\nuse Jiminny\\Exceptions\\SocialAccountTokenInvalidException;\nuse Jiminny\\Jobs\\Crm\\NoteObject;\nuse Jiminny\\Models\\Crm\\Field;\nuse Jiminny\\Services\\Crm\\BaseClient;\nuse Jiminny\\Services\\Crm\\Hubspot\\DTO\\Response\\Owner;\nuse Jiminny\\Services\\SocialAccountService;\nuse SevenShores\\Hubspot\\Exceptions\\BadRequest;\nuse SevenShores\\Hubspot\\Exceptions\\HubspotException;\nuse SevenShores\\Hubspot\\Factory;\nuse SevenShores\\Hubspot\\Http\\Response;\nuse Jiminny\\Services\\Crm\\Hubspot\\Pagination\\HubspotPaginationService;\nuse Illuminate\\Support\\Facades\\Redis;\nuse Throwable;\n\n/**\n * @phpstan-type CrmFieldOption array{id:string, label:string, value?:string}\n */\nclass Client extends BaseClient implements HubspotClientInterface\n{\n public const string MIN_API_VERSION = '2';\n\n public const string BASE_URL = 'https://api.hubapi.com';\n\n public const int ASSOCIATIONS_BATCH_SIZE_LIMIT = 1000;\n\n private HubspotPaginationService $paginationService;\n private HubspotTokenManager $tokenManager;\n\n public function __construct(\n SocialAccountService $socialAccountService,\n HubspotPaginationService $paginationService,\n HubspotTokenManager $tokenManager\n ) {\n parent::__construct($socialAccountService);\n $this->paginationService = $paginationService;\n $this->tokenManager = $tokenManager;\n\n $this->setBaseUrl(self::BASE_URL);\n $this->setVersion(self::MIN_API_VERSION);\n }\n\n /**\n * Reacts to a rate limits (429) from HubSpot by translating it\n * into a RateLimitException carrying retry_after.\n *\n * Wrap any outbound HubSpot call (SDK or raw HTTP) like:\n *\n * $this->executeRequest(fn () => $this->getNewInstance()->crm()->...);\n *\n * @template T\n * @param callable(): T $apiCall\n * @return T\n *\n * @throws RateLimitException\n */\n private function executeRequest(callable $apiCall)\n {\n $cacheKey = $this->getRateLimitCacheKey();\n\n $cachedRetryAfter = Redis::get($cacheKey);\n if (is_string($cachedRetryAfter) && is_numeric($cachedRetryAfter)) {\n throw new RateLimitException(\n 'Hubspot rate limit (cached circuit-breaker)',\n (int) $cachedRetryAfter,\n );\n }\n\n try {\n return $apiCall();\n } catch (Throwable $e) {\n if ($this->isHubspotRateLimit($e)) {\n $retryAfter = $this->parseRetryAfter($e);\n\n Redis::setex($cacheKey, $retryAfter, (string) $retryAfter);\n\n $this->log->warning('[Hubspot] Received 429 from API', [\n 'team_id' => $this->config->team_id,\n 'config_id' => $this->config->getId(),\n 'retry_after' => $retryAfter,\n 'reason' => $e->getMessage(),\n ]);\n\n throw new RateLimitException('Hubspot returned 429', $retryAfter, $e);\n }\n\n throw $e;\n }\n }\n\n private function getRateLimitCacheKey(): string\n {\n return sprintf('hubspot:ratelimit:portal:%d', $this->config->getId());\n }\n\n public function isHubspotRateLimit(Throwable $e): bool\n {\n if ($e instanceof BadRequest\n || $e instanceof DealApiException\n || $e instanceof ContactApiException\n || $e instanceof CompanyApiException\n || $e instanceof \\GuzzleHttp\\Exception\\RequestException\n ) {\n return (int) $e->getCode() === 429;\n }\n\n return false;\n }\n\n public function parseRetryAfter(Throwable $e): int\n {\n if (method_exists($e, 'getResponseHeaders')) {\n $headers = $e->getResponseHeaders() ?: [];\n $value = $headers['Retry-After'] ?? $headers['retry-after'] ?? null;\n if (is_array($value)) {\n $value = $value[0] ?? null;\n }\n if (is_numeric($value)) {\n return (int) $value;\n }\n }\n\n $message = strtolower($e->getMessage());\n\n if (str_contains($message, 'daily')) {\n return 600;\n }\n if (str_contains($message, 'ten secondly')) {\n return 10;\n }\n if (str_contains($message, 'secondly')) {\n return 1;\n }\n\n $this->log->warning('[Hubspot] No retry-after header or known message, using default', [\n 'exception_class' => get_class($e),\n 'message' => $message,\n ]);\n\n return 10;\n }\n\n public function parseMessage(Throwable $e): string\n {\n if (! method_exists($e, 'getResponseBody')) {\n return '';\n }\n\n $body = $e->getResponseBody();\n if (is_string($body)) {\n $body = json_decode($body, true) ?? [];\n }\n\n if (! is_array($body)) {\n return '';\n }\n\n return (string) ($body['message'] ?? '');\n }\n\n public function getMinimumApiVersion(): string\n {\n return self::MIN_API_VERSION;\n }\n\n public function getInstance(): Factory\n {\n return new Factory([\n 'key' => $this->accessToken,\n 'oauth2' => true,\n 'base_url' => $this->baseUrl,\n ]);\n }\n\n public function getNewInstance(): Discovery\n {\n return \\HubSpot\\Factory::createWithAccessToken($this->accessToken);\n }\n\n /**\n * Secondly and daily limits for Hubspot API\n *\n * Product Tier: Free & Starter | Professional & Enterprise | API add-on (any tier)\n * Burst: 100/10 seconds | 150/10 seconds | 200/10 seconds\n * Daily: 250,000 | 500,000 | 1,000,000\n *\n * Official documentation states: The search endpoints are rate limited to five requests per second.\n * Since with 5 RPS were still hitting secondly rate limits we lowered it to 4\n */\n public function getPaginatedData(array $payload, string $type, int $offset = 0): array\n {\n $total = 0;\n $lastId = null;\n $rows = [];\n foreach ($this->getPaginatedDataGenerator($payload, $type, $offset, $total, $lastId) as $row) {\n $rows[] = $row;\n }\n\n return ['results' => $rows, 'total' => $total, 'last_record' => $lastId];\n }\n\n /**\n * @throws HubspotException\n * @throws SocialAccountTokenInvalidException\n * @throws BadRequest\n */\n public function getPaginatedDataGenerator(\n array $payload,\n string $type,\n int $offset = 0,\n int &$total = 0,\n ?string &$lastRecordId = null\n ): \\Generator {\n return $this->paginationService->getPaginatedDataGenerator(\n $this,\n $payload,\n $type,\n $offset,\n $total,\n $lastRecordId\n );\n }\n\n /**\n * Execute a search request against HubSpot CRM objects with rate limiting.\n *\n * @param string $objectType The object type ('deals', 'companies', 'contacts', 'calls')\n * @param array<string, mixed> $payload The search payload with filters, sorts, properties, etc.\n * @return array The search response with 'results', 'total', 'paging' keys\n * @throws RateLimitException When rate limit is hit\n * @throws HubspotException On API errors\n */\n public function search(string $objectType, array $payload): array\n {\n $endpoint = self::BASE_URL . \"/crm/v3/objects/{$objectType}/search\";\n\n return $this->executeRequest(function () use ($endpoint, $payload) {\n $response = $this->getInstance()->getClient()->request('POST', $endpoint, ['json' => $payload]);\n\n return $response->toArray();\n });\n }\n\n /**\n * @throws DealApiException\n * @throws CrmException\n */\n public function getOpportunityById(string $crmId, array $fields): array\n {\n try {\n $deal = $this->getNewInstance()->crm()->deals()->basicApi()->getById(\n $crmId,\n implode(',', $fields),\n 'companies,contacts'\n );\n } catch (DealApiException $e) {\n $this->log->info('[Hubspot] Failed to fetch opportunity', [\n 'crm_id' => $crmId,\n 'reason' => $e->getMessage(),\n ]);\n\n throw $e;\n }\n\n if (! $deal instanceof DealWithAssociations) {\n throw new CrmException('Deal not found');\n }\n\n return [\n 'id' => $deal->getId(),\n 'properties' => $deal->getProperties(),\n 'associations' => $deal->getAssociations(),\n ];\n }\n\n /**\n * Generic batch read method for HubSpot objects\n *\n * @param string $objectType The object type ('deals', 'companies', 'contacts')\n * @param array<string> $crmIds Array of HubSpot object IDs (max 100)\n * @param array<string> $fields Array of property names to fetch\n *\n * @return array<string, array> Array keyed by CRM ID with object data\n */\n private function batchReadObjects(string $objectType, array $crmIds, array $fields): array\n {\n if (empty($crmIds)) {\n return [];\n }\n\n $this->validateBatchSize($objectType, $crmIds);\n $this->ensureValidToken();\n\n try {\n $batchConfig = $this->createBatchConfiguration($objectType);\n $batchReadRequest = $this->prepareBatchRequest($batchConfig, $crmIds, $fields);\n $response = $batchConfig['api']->read($batchReadRequest);\n\n $this->validateApiResponse($response, $objectType);\n\n $results = $this->processApiResults($response);\n $this->logBatchResults($objectType, $crmIds, $results);\n\n return $results;\n } catch (\\Throwable $e) {\n $this->handleBatchError($e, $objectType, $crmIds);\n }\n }\n\n private function validateBatchSize(string $objectType, array $crmIds): void\n {\n if (count($crmIds) > 100) {\n throw new \\InvalidArgumentException(\"Batch size cannot exceed 100 {$objectType}\");\n }\n }\n\n private function createBatchConfiguration(string $objectType): array\n {\n $configurations = [\n 'deals' => [\n 'batchReadRequest' => new \\HubSpot\\Client\\Crm\\Deals\\Model\\BatchReadInputSimplePublicObjectId(),\n 'inputClass' => \\HubSpot\\Client\\Crm\\Deals\\Model\\SimplePublicObjectId::class,\n 'api' => $this->getNewInstance()->crm()->deals()->batchApi(),\n ],\n 'companies' => [\n 'batchReadRequest' => new \\HubSpot\\Client\\Crm\\Companies\\Model\\BatchReadInputSimplePublicObjectId(),\n 'inputClass' => \\HubSpot\\Client\\Crm\\Companies\\Model\\SimplePublicObjectId::class,\n 'api' => $this->getNewInstance()->crm()->companies()->batchApi(),\n ],\n 'contacts' => [\n 'batchReadRequest' => new \\HubSpot\\Client\\Crm\\Contacts\\Model\\BatchReadInputSimplePublicObjectId(),\n 'inputClass' => \\HubSpot\\Client\\Crm\\Contacts\\Model\\SimplePublicObjectId::class,\n 'api' => $this->getNewInstance()->crm()->contacts()->batchApi(),\n ],\n ];\n\n if (! isset($configurations[$objectType])) {\n throw new \\InvalidArgumentException(\"Unsupported object type: {$objectType}\");\n }\n\n return $configurations[$objectType];\n }\n\n private function prepareBatchRequest(array $batchConfig, array $crmIds, array $fields): object\n {\n $batchReadRequest = $batchConfig['batchReadRequest'];\n $inputClass = $batchConfig['inputClass'];\n\n $inputs = array_map(function ($crmId) use ($inputClass) {\n $input = new $inputClass();\n $input->setId($crmId);\n\n return $input;\n }, $crmIds);\n\n $batchReadRequest->setInputs($inputs);\n $batchReadRequest->setProperties($fields);\n\n return $batchReadRequest;\n }\n\n private function validateApiResponse($response, string $objectType): void\n {\n if (! $response) {\n throw new CrmException(\"HubSpot API returned null response for {$objectType} batch read\");\n }\n }\n\n private function processApiResults($response): array\n {\n $results = [];\n $responseResults = $response->getResults();\n\n if ($responseResults) {\n foreach ($responseResults as $object) {\n if ($object && $object->getId()) {\n $results[$object->getId()] = [\n 'id' => $object->getId(),\n 'properties' => $object->getProperties() ?: [],\n ];\n }\n }\n }\n\n return $results;\n }\n\n private function logBatchResults(string $objectType, array $crmIds, array $results): void\n {\n $this->log->info(\"[HubSpot] Batch fetched {$objectType}\", [\n 'requested_count' => count($crmIds),\n 'returned_count' => count($results),\n 'crm_ids' => $crmIds,\n ]);\n }\n\n private function handleBatchError(\\Throwable $e, string $objectType, array $crmIds): void\n {\n $errorMessage = $e->getMessage() ?: 'Unknown error';\n $errorTrace = $e->getTraceAsString() ?: 'No trace available';\n\n $this->log->error(\"[HubSpot] Failed to batch fetch {$objectType}\", [\n 'crm_ids' => $crmIds,\n 'error' => $errorMessage,\n 'trace' => $errorTrace,\n ]);\n\n throw new CrmException(\"Failed to batch fetch {$objectType}: \" . $errorMessage);\n }\n\n /**\n * Batch read multiple opportunities by their CRM IDs\n *\n * @param array<string> $crmIds Array of HubSpot deal IDs (max 100)\n * @param array<string> $fields Array of property names to fetch\n *\n * @return array<string, array> Array keyed by CRM ID with opportunity data\n */\n public function getOpportunitiesByIds(array $crmIds, array $fields): array\n {\n return $this->batchReadObjects('deals', $crmIds, $fields);\n }\n\n /**\n * Batch read multiple companies by their CRM IDs\n *\n * @param array<string> $crmIds Array of HubSpot company IDs (max 100)\n * @param array<string> $fields Array of property names to fetch\n *\n * @return array<string, array> Array keyed by CRM ID with company data\n */\n public function getCompaniesByIds(array $crmIds, array $fields): array\n {\n return $this->batchReadObjects('companies', $crmIds, $fields);\n }\n\n /**\n * Batch read multiple contacts by their CRM IDs\n *\n * @param array<string> $crmIds Array of HubSpot contact IDs (max 100)\n * @param array<string> $fields Array of property names to fetch\n *\n * @return array<string, array> Array keyed by CRM ID with contact data\n */\n public function getContactsByIds(array $crmIds, array $fields): array\n {\n return $this->batchReadObjects('contacts', $crmIds, $fields);\n }\n\n /**\n * @throws CompanyApiException\n * @throws CrmException\n */\n public function getAccountById(string $crmId, array $fields): array\n {\n try {\n $company = $this->getNewInstance()->crm()->companies()->basicApi()->getById(\n $crmId,\n implode(',', $fields),\n );\n } catch (CompanyApiException $e) {\n $this->log->info('[Hubspot] Failed to fetch account', [\n 'crm_id' => $crmId,\n 'reason' => $e->getMessage(),\n ]);\n\n throw $e;\n }\n\n if (! $company instanceof CompaniesWithAssociations) {\n throw new CrmException('Account not found');\n }\n\n return [\n 'id' => $company->getId(),\n 'properties' => $company->getProperties(),\n ];\n }\n\n /**\n * @throws ContactApiException\n * @throws CrmException\n */\n public function getContactById(string $crmId, array $fields): array\n {\n try {\n $contact = $this->getNewInstance()->crm()->contacts()->basicApi()->getById(\n $crmId,\n implode(',', $fields)\n );\n } catch (ContactApiException $e) {\n $this->log->info('[Hubspot] Failed to fetch contact', [\n 'crm_id' => $crmId,\n 'reason' => $e->getMessage(),\n ]);\n\n throw $e;\n }\n\n if (! $contact instanceof ContactsWithAssociations) {\n throw new CrmException('Contact not found');\n }\n\n return [\n 'id' => $contact->getId(),\n 'properties' => $contact->getProperties(),\n ];\n }\n\n /**\n * This is email search request that Hubspot offers as GET (more generous quota)\n */\n public function getContactByEmail(string $email, array $fields = []): array\n {\n try {\n $contact = $this->getNewInstance()->crm()->contacts()->basicApi()->getById(\n $email,\n implode(',', $fields),\n null,\n false,\n 'email'\n );\n\n return [\n 'id' => $contact->getId(),\n 'properties' => $contact->getProperties(),\n ];\n } catch (ContactApiException $e) {\n $this->log->info('[Hubspot] Failed to fetch contact', [\n 'email' => $email,\n 'reason' => $e->getMessage(),\n ]);\n\n return [];\n }\n }\n\n /**\n * @throws CrmException\n */\n public function fetchProperty(string $objectType, string $propertyId): Property\n {\n $result = $this->getNewInstance()->crm()->properties()->coreApi()->getByName($objectType, $propertyId);\n\n if (! $result instanceof Property) {\n $this->log->error('[Hubspot] Failed to fetch property', [\n 'object_type' => $objectType,\n 'property_id' => $propertyId,\n 'reason' => $result->getMessage(),\n ]);\n\n throw new CrmException('Failed to fetch property');\n }\n\n return $result;\n }\n\n /**\n * @return array<CrmFieldOption>\n */\n public function fetchPropertyOptions(string $objectType, string $propertyId): array\n {\n /** @var array<CrmFieldOption> */\n return $this->fetchProperty($objectType, $propertyId)->getOptions();\n }\n\n /**\n * @return array<array{id:string, label:string, deleted:bool}>\n */\n public function fetchCallDispositions(): array\n {\n /** @var Response $response */\n $response = $this->getInstance()->engagements()->getCallDispositions();\n\n /**\n * @var array<array{\n * id:string,\n * label:string,\n * deleted: bool\n * }>\n */\n return $response->toArray();\n }\n\n /**\n * @return array<CrmFieldOption>\n */\n public function fetchOpportunityPipelineStages(): array\n {\n $stages = [];\n $apiResponse = $this->getNewInstance()->crm()->pipelines()->pipelinesApi()->getAll('deals');\n\n if ($apiResponse instanceof Error) {\n $this->log->error('[Hubspot] Failed to fetch opportunity pipelines', [\n 'reason' => $apiResponse->getMessage(),\n ]);\n\n return [];\n }\n\n foreach ($apiResponse->getResults() as $pipeline) {\n $pipelineStages = array_map(\n static function (PipelineStage $stage) {\n return [\n 'id' => $stage->getId(),\n 'label' => $stage->getLabel(),\n ];\n },\n $pipeline->getStages()\n );\n\n $stages = array_merge($stages, $pipelineStages);\n }\n\n return $stages;\n }\n\n public function fetchOpportunityPipelines(): array\n {\n $pipelines = [];\n\n try {\n $apiResponse = $this->makeRequest('/crm/v3/pipelines/deals');\n } catch (\\Exception $e) {\n $this->log->info('[Hubspot] Failed to fetch opportunity pipelines', [\n 'reason' => $e->getMessage(),\n ]);\n\n return [];\n }\n\n $response = $apiResponse->toArray();\n\n foreach ($response['results'] as $pipeline) {\n $pipelines[] = [\n 'id' => $pipeline['id'],\n 'label' => $pipeline['label'],\n ];\n }\n\n return $pipelines;\n }\n\n /**\n * @return array<CrmFieldOption>\n */\n public function fetchMeetingOutcomeFieldOptions(Field $field): array\n {\n return $field->getCrmProviderId() === 'meetingOutcome'\n ? $this->fetchMeetingOutcomeTypes()\n : $this->fetchCallActivityTypes();\n }\n\n public function fetchMeetingOutcomeTypes(): array\n {\n return $this->extractMeetingTypeOptions(\n 'https://api.hubapi.com/crm/v3/properties/meeting/hs_meeting_outcome'\n );\n }\n\n public function fetchCallActivityTypes(): array\n {\n return $this->extractMeetingTypeOptions(\n 'https://api.hubapi.com/crm/v3/properties/call/hs_activity_type'\n );\n }\n\n private function extractMeetingTypeOptions(string $endpoint): array\n {\n /** @var Response $response */\n $response = $this->getInstance()\n ->getClient()\n ->request('GET', $endpoint);\n\n /**\n * @var array<array{\n * value: string,\n * label: string,\n * displayOrder: int\n * }> $optionData\n */\n $optionData = $response->toArray()['options'] ?? [];\n\n $options = [];\n foreach ($optionData as $item) {\n $options[] = [\n 'id' => $item['value'],\n 'value' => $item['value'],\n 'label' => $item['label'],\n 'display_order' => $item['displayOrder'],\n ];\n }\n\n return $options;\n }\n\n /**\n * @return array<CrmFieldOption>\n */\n public function fetchDispositionFieldOptions(): array\n {\n $options = [];\n\n $dispositions = $this->fetchCallDispositions();\n\n foreach ($dispositions as $disposition) {\n if ($disposition['deleted'] !== false) {\n continue;\n }\n\n $option['value'] = $disposition['id'];\n $option['id'] = $disposition['id'];\n $option['label'] = $disposition['label'];\n\n $options[] = $option;\n }\n\n return $options;\n }\n\n /**\n * @return array<CrmFieldOption>\n */\n public function fetchOpportunityFieldOptions(Field $field): array\n {\n if ($field->isStageField()) {\n return $this->fetchOpportunityPipelineStages();\n }\n\n if ($field->isPipelineField()) {\n return $this->fetchOpportunityPipelines();\n }\n\n return $this->fetchPropertyOptions('deals', $field->getCrmProviderId());\n }\n\n /**\n * @throws BadRequest\n * @throws HubspotException\n */\n public function makeRequest(string $endpoint, $method = 'GET', $payload = [], ?string $queryString = null)\n {\n $endpoint = self::BASE_URL . $endpoint;\n\n if ($method === 'GET') {\n return $this->getInstance()->getClient()?->request(\n method: $method,\n endpoint: $endpoint,\n query_string: $queryString\n );\n } else {\n return $this->getInstance()->getClient()->request($method, $endpoint, [\n 'json' => ($payload),\n ]);\n }\n }\n\n /**\n * @throws BadRequest\n * @throws HubspotException\n */\n public function createMeeting(array $payload): Response\n {\n $endpoint = '/crm/v3/objects/meetings';\n\n return $this->makeRequest($endpoint, 'POST', $payload);\n }\n\n /**\n * @throws BadRequest\n * @throws HubspotException\n */\n public function updateMeeting(string $meetingId, array $payload): Response\n {\n $endpoint = '/crm/v3/objects/meetings/' . $meetingId;\n\n return $this->makeRequest($endpoint, 'PATCH', $payload);\n }\n\n /**\n * @throws \\Exception\n */\n public function createNote(\n string $body,\n string $ownerId,\n int $timestamp,\n string $objectId,\n NoteObject $noteObject\n ): ?string {\n try {\n $noteInput = new SimplePublicObjectInput([\n 'properties' => [\n 'hs_note_body' => $body,\n 'hubspot_owner_id' => $ownerId,\n 'hs_timestamp' => $timestamp,\n ],\n ]);\n\n // Create note\n $note = $this->getNewInstance()->crm()->objects()->basicApi()->create('note', $noteInput);\n\n $this->getNewInstance()->crm()->objects()->associationsApi()->create(\n 'note',\n $note->getId(),\n $this->getNoteObject($noteObject),\n $objectId,\n $this->getNoteAssociationType($noteObject),\n );\n\n return $note->getId();\n } catch (\\Exception $e) {\n $this->log->error('[Hubspot] Failed to create note', [\n 'objectId' => $objectId,\n 'noteObject' => $noteObject->getObjectType(),\n 'reason' => $e->getMessage(),\n ]);\n\n \\Sentry::captureException($e);\n }\n\n return null;\n }\n\n public function updateEngagement(string $objectId, array $engagement, array $metadata): void\n {\n $this->getInstance()->engagements()->update($objectId, $engagement, $metadata);\n }\n\n public function getEngagementData(string $engagementId): array\n {\n $engagement = $this->getInstance()->engagements()->get($engagementId);\n\n return $engagement->toArray();\n }\n\n public function createEngagement(array $engagement, array $associations, array $metadata): Response\n {\n return $this->getInstance()\n ->engagements()\n ->create($engagement, $associations, $metadata);\n }\n\n public function isUnauthorizedException(\\Exception $e): bool\n {\n // Check for specific HubSpot API exception types first\n if ($e instanceof BadRequest) {\n // BadRequest can contain 401 status codes\n return $e->getCode() === 401;\n }\n\n // Check for HTTP client exceptions with status codes\n if ($e instanceof \\GuzzleHttp\\Exception\\RequestException && $e->hasResponse()) {\n $response = $e->getResponse();\n if ($response !== null) {\n return $response->getStatusCode() === 401;\n }\n }\n\n // Check for Guzzle HTTP exceptions\n if ($e instanceof \\GuzzleHttp\\Exception\\ClientException) {\n return $e->getCode() === 401;\n }\n\n // Fallback to string matching as last resort, but be more specific\n $message = strtolower($e->getMessage());\n\n return str_contains($message, '401 unauthorized') ||\n str_contains($message, 'http 401') ||\n str_contains($message, 'status code 401') ||\n (preg_match('/\\b401\\b/', $message) && str_contains($message, 'unauthorized'));\n }\n\n /**\n * Validates and refreshes the access token if needed before API requests.\n * This ensures long-running processes don't fail due to token expiration.\n *\n * @throws SocialAccountTokenInvalidException\n */\n public function ensureValidToken(): void\n {\n if ($this->oauthAccount === null) {\n return;\n }\n\n $newToken = $this->tokenManager->ensureValidToken($this->oauthAccount);\n if ($newToken !== null) {\n $this->accessToken = $newToken;\n }\n }\n\n public function getConfig()\n {\n return $this->config;\n }\n\n // returns only active (archived=false)\n public function getOwners(): array\n {\n return $this->getNewInstance()->crm()->owners()->getAll();\n }\n\n /**\n * @param bool $archived\n *\n * @return array<Owner>|[]\n */\n public function getOwnersArchived(bool $archived = true): array\n {\n $endpoint = '/crm/v3/owners';\n $queryParams = [\n 'archived' => $archived ? 'true' : 'false',\n ];\n $queryString = http_build_query($queryParams);\n\n $owners = [];\n\n try {\n $response = $this->makeRequest(endpoint: $endpoint, queryString: $queryString);\n $responseData = $response?->toArray();\n\n foreach ($responseData['results'] as $result) {\n try {\n $owners[] = Owner::create($result);\n } catch (Throwable $e) {\n $this->log->error('[HubSpot] Failed to process owner data', [\n 'result' => $result,\n 'error' => $e->getMessage(),\n ]);\n\n continue;\n }\n }\n } catch (Throwable $e) {\n $this->log->error('HubSpot] Failed to fetch owners', [\n 'archived' => $archived,\n 'error' => $e->getMessage(),\n ]);\n\n return [];\n }\n\n return $owners;\n }\n\n public function getMeeting(string $engagementId): ObjectWithAssociations\n {\n return $this->getNewInstance()->crm()->objects()->basicApi()\n ->getById('meeting', $engagementId, null, 'contact,company,deal');\n }\n\n public function deleteEngagement(string $engagementId): void\n {\n $this->getInstance()->engagements()->delete((int) $engagementId);\n }\n\n public function getAssociationsData(array $ids, string $fromObject, string $toObject): array\n {\n $associationData = [];\n $idChunks = array_chunk($ids, self::ASSOCIATIONS_BATCH_SIZE_LIMIT);\n\n foreach ($idChunks as $idChunk) {\n try {\n $batchInput = new \\HubSpot\\Client\\Crm\\Associations\\Model\\BatchInputPublicObjectId();\n $batchInput->setInputs(array_map(function ($id) {\n $publicObjectId = new \\HubSpot\\Client\\Crm\\Associations\\Model\\PublicObjectId();\n $publicObjectId->setId($id);\n\n return $publicObjectId;\n }, $idChunk));\n\n $associatedObjectsData = $this\n ->getNewInstance()\n ->crm()\n ->associations()\n ->batchApi()\n ->read($fromObject, $toObject, $batchInput);\n\n if ($associatedObjectsData instanceof \\HubSpot\\Client\\Crm\\Associations\\Model\\BatchResponsePublicAssociationMulti) {\n foreach ($associatedObjectsData->getResults() as $association) {\n $from = $association->getFrom()->getId();\n $toAssociations = $association->getTo();\n\n if (! empty($toAssociations)) {\n $associationData[$from] = array_map(function ($item) {\n return $item->getId();\n }, $toAssociations);\n }\n }\n }\n// } catch (RateLimitException $e) {\n// throw $e;\n } catch (\\Exception $e) {\n $this->log->error('[Hubspot] Failed to fetch associations', [\n 'from_object' => $fromObject,\n 'to_object' => $toObject,\n 'reason' => $e->getMessage(),\n ]);\n }\n }\n\n return $associationData;\n }\n\n /**\n * @throws \\Exception\n */\n private function getNoteAssociationType(NoteObject $noteObject): string\n {\n return match($noteObject) {\n NoteObject::Opportunity => 'note_to_deal',\n NoteObject::Lead, NoteObject::Contact => 'note_to_contact', // or 'note_to_lead' if your portal supports it\n NoteObject::Account => 'note_to_company',\n NoteObject::Call, NoteObject::Event => throw new \\Exception('Not supported'),\n };\n }\n\n /**\n * @throws \\Exception\n */\n private function getNoteObject(NoteObject $noteObject): string\n {\n return match($noteObject) {\n NoteObject::Opportunity => 'deal',\n NoteObject::Lead, NoteObject::Contact => 'contact',\n NoteObject::Account => 'company',\n NoteObject::Call, NoteObject::Event => throw new \\Exception('Not supported'),\n };\n }\n\n public function addAssociations(string $objectType, string $associationType, array $payload): Response\n {\n $endpoint = \"/crm/v4/associations/$objectType/$associationType/batch/create\";\n\n return $this->makeRequest($endpoint, 'POST', $payload);\n }\n\n public function removeAssociations(string $objectType, string $associationType, array $payload): Response\n {\n $endpoint = \"/crm/v4/associations/$objectType/$associationType/batch/archive\";\n\n return $this->makeRequest($endpoint, 'POST', $payload);\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":true,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Show Replace Field","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Search History","depth":3,"on_screen":true,"role_description":"checkbox","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"429","depth":4,"on_screen":true,"value":"429","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"New Line","depth":3,"on_screen":true,"role_description":"checkbox","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Match Case","depth":3,"on_screen":true,"role_description":"checkbox","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Words","depth":3,"on_screen":true,"role_description":"checkbox","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Regex","depth":3,"on_screen":true,"role_description":"checkbox","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Replace History","depth":3,"bounds":{"left":0.0,"top":0.0,"width":0.015277778,"height":0.024444444},"on_screen":false,"role_description":"checkbox","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextField","text":"Replace","depth":4,"on_screen":false,"role_description":"text field","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"New Line","depth":3,"bounds":{"left":0.0,"top":0.0,"width":0.015277778,"height":0.024444444},"on_screen":false,"role_description":"checkbox","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Preserve case","depth":3,"bounds":{"left":0.0,"top":0.0,"width":0.015277778,"height":0.024444444},"on_screen":false,"role_description":"checkbox","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"1/4","depth":4,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Occurrence","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Next Occurrence","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Filter Search Results","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Open in Window, Multiple Cursors","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Click to highlight","depth":4,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.088194445,"height":0.027777778},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"54","depth":4,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Next Highlighted Error","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"[2026-05-11 11:08:45] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"43b1fb67-9aac-4fc6-9ced-689ecda5c548\",\"trace_id\":\"60028d0e-dcd8-496a-a7ba-3a04b8d646e2\"}\n[2026-05-11 11:08:45] local.INFO: [Commands/AsyncUpdateEsEntities] Starting ES update worker {\"pid\":72650,\"workerId\":\"\",\"target\":\"activities\"} {\"correlation_id\":\"6d49ffdc-2ed7-4eae-a1ee-e25ca95bbea8\",\"trace_id\":\"906573b5-005c-4820-8a32-3b0703ea86dd\"}\n[2026-05-11 11:08:46] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"43b1fb67-9aac-4fc6-9ced-689ecda5c548\",\"trace_id\":\"60028d0e-dcd8-496a-a7ba-3a04b8d646e2\"}\n[2026-05-11 11:09:12] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":615092,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"correlation_id\":\"f33d47cb-76c6-4c27-a641-48cbf69e623d\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:12] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":615092} {\"correlation_id\":\"f33d47cb-76c6-4c27-a641-48cbf69e623d\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:12] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":615092,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"f33d47cb-76c6-4c27-a641-48cbf69e623d\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:12] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":615092,\"participants\":[{\"id\":1004102,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":1004103,\"user_id\":89,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"f33d47cb-76c6-4c27-a641-48cbf69e623d\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:12] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f33d47cb-76c6-4c27-a641-48cbf69e623d\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:12] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f33d47cb-76c6-4c27-a641-48cbf69e623d\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:12] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"f33d47cb-76c6-4c27-a641-48cbf69e623d\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:12] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"f33d47cb-76c6-4c27-a641-48cbf69e623d\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:12] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"f33d47cb-76c6-4c27-a641-48cbf69e623d\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:13] local.INFO: [Hubspot] Failed to fetch contact {\"email\":\"nikolay.nikolov@jiminny.com\",\"reason\":\"[404] Client error: `GET https://api.hubapi.com/crm/v3/objects/contacts/nikolay.nikolov%40jiminny.com?properties=email%2Cfirstname%2Clastname%2Ccountry%2Cphone%2Cmobilephone%2Cjobtitle%2Chubspot_owner_id%2Cassociatedcompanyid%2Cphoto&archived=0&idProperty=email` resulted in a `404 Not Found` response\"} {\"correlation_id\":\"f33d47cb-76c6-4c27-a641-48cbf69e623d\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:13] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"f33d47cb-76c6-4c27-a641-48cbf69e623d\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:13] local.WARNING: [Hubspot] No retry-after header or known message, using default {\"exception_class\":\"SevenShores\\\\Hubspot\\\\Exceptions\\\\BadRequest\",\"message\":\"\"} {\"correlation_id\":\"f33d47cb-76c6-4c27-a641-48cbf69e623d\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:13] local.WARNING: [Hubspot] Received 429 from API {\"team_id\":2,\"config_id\":2,\"retry_after\":10,\"message\":\"\",\"reason\":\"Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response:\n{\\\"status\\\":\\\"error\\\",\\\"message\\\":\\\"You have reached your secondly limit.\\\",\\\"errorType\\\":\\\"RATE_LIMIT\\\",\\\"correlationId\\\":\\\"019e16ba-1 (truncated...)\n\"} {\"correlation_id\":\"f33d47cb-76c6-4c27-a641-48cbf69e623d\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:13] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":10,\"delay\":12} {\"correlation_id\":\"f33d47cb-76c6-4c27-a641-48cbf69e623d\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":614436,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"correlation_id\":\"ccafe863-7885-4971-96fb-87ef6dd4adf3\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614436} {\"correlation_id\":\"ccafe863-7885-4971-96fb-87ef6dd4adf3\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614436,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ccafe863-7885-4971-96fb-87ef6dd4adf3\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":614436,\"participants\":[{\"id\":1002751,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":1002752,\"user_id\":89,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"ccafe863-7885-4971-96fb-87ef6dd4adf3\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ccafe863-7885-4971-96fb-87ef6dd4adf3\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ccafe863-7885-4971-96fb-87ef6dd4adf3\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ccafe863-7885-4971-96fb-87ef6dd4adf3\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ccafe863-7885-4971-96fb-87ef6dd4adf3\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"ccafe863-7885-4971-96fb-87ef6dd4adf3\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"ccafe863-7885-4971-96fb-87ef6dd4adf3\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":10,\"delay\":10} {\"correlation_id\":\"ccafe863-7885-4971-96fb-87ef6dd4adf3\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":614382,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"correlation_id\":\"f00a4506-adfe-4fdc-b932-e6d2bc751fde\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614382} {\"correlation_id\":\"f00a4506-adfe-4fdc-b932-e6d2bc751fde\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614382,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"f00a4506-adfe-4fdc-b932-e6d2bc751fde\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":614382,\"participants\":[{\"id\":1002632,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":1002633,\"user_id\":89,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"f00a4506-adfe-4fdc-b932-e6d2bc751fde\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f00a4506-adfe-4fdc-b932-e6d2bc751fde\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f00a4506-adfe-4fdc-b932-e6d2bc751fde\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"f00a4506-adfe-4fdc-b932-e6d2bc751fde\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"f00a4506-adfe-4fdc-b932-e6d2bc751fde\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"f00a4506-adfe-4fdc-b932-e6d2bc751fde\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"f00a4506-adfe-4fdc-b932-e6d2bc751fde\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":10,\"delay\":12} {\"correlation_id\":\"f00a4506-adfe-4fdc-b932-e6d2bc751fde\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":614381,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"correlation_id\":\"36bd73f5-17f9-4f70-8254-2214543c7f8e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614381} {\"correlation_id\":\"36bd73f5-17f9-4f70-8254-2214543c7f8e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614381,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"36bd73f5-17f9-4f70-8254-2214543c7f8e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":614381,\"participants\":[{\"id\":1002630,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":1002631,\"user_id\":89,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"36bd73f5-17f9-4f70-8254-2214543c7f8e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"36bd73f5-17f9-4f70-8254-2214543c7f8e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"36bd73f5-17f9-4f70-8254-2214543c7f8e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"36bd73f5-17f9-4f70-8254-2214543c7f8e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"36bd73f5-17f9-4f70-8254-2214543c7f8e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"36bd73f5-17f9-4f70-8254-2214543c7f8e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"36bd73f5-17f9-4f70-8254-2214543c7f8e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":10,\"delay\":10} {\"correlation_id\":\"36bd73f5-17f9-4f70-8254-2214543c7f8e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":614378,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":6167,\"account_id\":null,\"opportunity_id\":null,\"stage_id\":null}} {\"correlation_id\":\"a4a3a058-ec22-4f04-bb14-a9bff18ce214\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614378} {\"correlation_id\":\"a4a3a058-ec22-4f04-bb14-a9bff18ce214\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614378,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a4a3a058-ec22-4f04-bb14-a9bff18ce214\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":614378,\"participants\":[{\"id\":1002623,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":1002624,\"user_id\":null,\"contact_id\":6167,\"lead_id\":null},{\"id\":1002625,\"user_id\":89,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"a4a3a058-ec22-4f04-bb14-a9bff18ce214\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a4a3a058-ec22-4f04-bb14-a9bff18ce214\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a4a3a058-ec22-4f04-bb14-a9bff18ce214\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"a4a3a058-ec22-4f04-bb14-a9bff18ce214\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"a4a3a058-ec22-4f04-bb14-a9bff18ce214\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"a4a3a058-ec22-4f04-bb14-a9bff18ce214\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"a4a3a058-ec22-4f04-bb14-a9bff18ce214\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":10,\"delay\":12} {\"correlation_id\":\"a4a3a058-ec22-4f04-bb14-a9bff18ce214\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613840,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613840} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613840,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613840,\"participants\":[{\"id\":1001764,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1001765,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":261} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":299} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613840,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613840,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613840} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613840,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613840,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"d86caa21-8980-460b-b2be-88292956cdb3\",\"trace_id\":\"6f80ed90-fa59-444e-a016-33a62019c6a4\"}\n[2026-05-11 11:09:15] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613833,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"ed230e3b-8ded-4591-bfe7-d4ead6f411c1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613833} {\"correlation_id\":\"ed230e3b-8ded-4591-bfe7-d4ead6f411c1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613833,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ed230e3b-8ded-4591-bfe7-d4ead6f411c1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613833,\"participants\":[{\"id\":1001750,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1001751,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"ed230e3b-8ded-4591-bfe7-d4ead6f411c1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"d86caa21-8980-460b-b2be-88292956cdb3\",\"trace_id\":\"6f80ed90-fa59-444e-a016-33a62019c6a4\"}\n[2026-05-11 11:09:15] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"d86caa21-8980-460b-b2be-88292956cdb3\",\"trace_id\":\"6f80ed90-fa59-444e-a016-33a62019c6a4\"}\n[2026-05-11 11:09:15] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ed230e3b-8ded-4591-bfe7-d4ead6f411c1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ed230e3b-8ded-4591-bfe7-d4ead6f411c1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ed230e3b-8ded-4591-bfe7-d4ead6f411c1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ed230e3b-8ded-4591-bfe7-d4ead6f411c1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"ed230e3b-8ded-4591-bfe7-d4ead6f411c1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613833,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"ed230e3b-8ded-4591-bfe7-d4ead6f411c1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613833,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"ed230e3b-8ded-4591-bfe7-d4ead6f411c1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613833} {\"correlation_id\":\"ed230e3b-8ded-4591-bfe7-d4ead6f411c1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613833,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ed230e3b-8ded-4591-bfe7-d4ead6f411c1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613833,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"ed230e3b-8ded-4591-bfe7-d4ead6f411c1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613827,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"d165f8f2-23f6-4f9a-90e7-7b600066818c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613827} {\"correlation_id\":\"d165f8f2-23f6-4f9a-90e7-7b600066818c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613827,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d165f8f2-23f6-4f9a-90e7-7b600066818c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613827,\"participants\":[{\"id\":1001734,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1001735,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"d165f8f2-23f6-4f9a-90e7-7b600066818c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d165f8f2-23f6-4f9a-90e7-7b600066818c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d165f8f2-23f6-4f9a-90e7-7b600066818c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"d165f8f2-23f6-4f9a-90e7-7b600066818c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"d165f8f2-23f6-4f9a-90e7-7b600066818c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"d165f8f2-23f6-4f9a-90e7-7b600066818c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613827,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"d165f8f2-23f6-4f9a-90e7-7b600066818c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613827,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"d165f8f2-23f6-4f9a-90e7-7b600066818c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613827} {\"correlation_id\":\"d165f8f2-23f6-4f9a-90e7-7b600066818c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613827,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d165f8f2-23f6-4f9a-90e7-7b600066818c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613827,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"d165f8f2-23f6-4f9a-90e7-7b600066818c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613826,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"1816f96e-c36b-474a-8f46-bc8c71bb0079\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613826} {\"correlation_id\":\"1816f96e-c36b-474a-8f46-bc8c71bb0079\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613826,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1816f96e-c36b-474a-8f46-bc8c71bb0079\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613826,\"participants\":[{\"id\":1001732,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1001733,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"1816f96e-c36b-474a-8f46-bc8c71bb0079\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1816f96e-c36b-474a-8f46-bc8c71bb0079\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1816f96e-c36b-474a-8f46-bc8c71bb0079\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1816f96e-c36b-474a-8f46-bc8c71bb0079\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1816f96e-c36b-474a-8f46-bc8c71bb0079\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"1816f96e-c36b-474a-8f46-bc8c71bb0079\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613826,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"1816f96e-c36b-474a-8f46-bc8c71bb0079\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613826,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"1816f96e-c36b-474a-8f46-bc8c71bb0079\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613826} {\"correlation_id\":\"1816f96e-c36b-474a-8f46-bc8c71bb0079\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613826,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1816f96e-c36b-474a-8f46-bc8c71bb0079\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613826,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"1816f96e-c36b-474a-8f46-bc8c71bb0079\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613820,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"a2b1cf94-6665-4574-a821-fcd845d290dc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613820} {\"correlation_id\":\"a2b1cf94-6665-4574-a821-fcd845d290dc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613820,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a2b1cf94-6665-4574-a821-fcd845d290dc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613820,\"participants\":[{\"id\":1001721,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1001722,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"a2b1cf94-6665-4574-a821-fcd845d290dc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a2b1cf94-6665-4574-a821-fcd845d290dc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a2b1cf94-6665-4574-a821-fcd845d290dc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"a2b1cf94-6665-4574-a821-fcd845d290dc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"a2b1cf94-6665-4574-a821-fcd845d290dc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"a2b1cf94-6665-4574-a821-fcd845d290dc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613820,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"a2b1cf94-6665-4574-a821-fcd845d290dc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613820,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"a2b1cf94-6665-4574-a821-fcd845d290dc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613820} {\"correlation_id\":\"a2b1cf94-6665-4574-a821-fcd845d290dc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613820,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a2b1cf94-6665-4574-a821-fcd845d290dc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613820,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"a2b1cf94-6665-4574-a821-fcd845d290dc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613818,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"7194ba37-7af3-4aa0-80a3-14b38431fd39\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613818} {\"correlation_id\":\"7194ba37-7af3-4aa0-80a3-14b38431fd39\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613818,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7194ba37-7af3-4aa0-80a3-14b38431fd39\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613818,\"participants\":[{\"id\":1001717,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1001718,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"7194ba37-7af3-4aa0-80a3-14b38431fd39\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7194ba37-7af3-4aa0-80a3-14b38431fd39\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7194ba37-7af3-4aa0-80a3-14b38431fd39\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7194ba37-7af3-4aa0-80a3-14b38431fd39\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"7194ba37-7af3-4aa0-80a3-14b38431fd39\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"7194ba37-7af3-4aa0-80a3-14b38431fd39\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613818,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"7194ba37-7af3-4aa0-80a3-14b38431fd39\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613818,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"7194ba37-7af3-4aa0-80a3-14b38431fd39\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613818} {\"correlation_id\":\"7194ba37-7af3-4aa0-80a3-14b38431fd39\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613818,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7194ba37-7af3-4aa0-80a3-14b38431fd39\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613818,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"7194ba37-7af3-4aa0-80a3-14b38431fd39\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613812,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"1fe899e0-6ad7-4159-b5f9-6f34b32d31d6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613812} {\"correlation_id\":\"1fe899e0-6ad7-4159-b5f9-6f34b32d31d6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613812,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1fe899e0-6ad7-4159-b5f9-6f34b32d31d6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613812,\"participants\":[{\"id\":1001705,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1001706,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"1fe899e0-6ad7-4159-b5f9-6f34b32d31d6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1fe899e0-6ad7-4159-b5f9-6f34b32d31d6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1fe899e0-6ad7-4159-b5f9-6f34b32d31d6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1fe899e0-6ad7-4159-b5f9-6f34b32d31d6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1fe899e0-6ad7-4159-b5f9-6f34b32d31d6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"1fe899e0-6ad7-4159-b5f9-6f34b32d31d6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613812,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"1fe899e0-6ad7-4159-b5f9-6f34b32d31d6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613812,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"1fe899e0-6ad7-4159-b5f9-6f34b32d31d6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613812} {\"correlation_id\":\"1fe899e0-6ad7-4159-b5f9-6f34b32d31d6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613812,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1fe899e0-6ad7-4159-b5f9-6f34b32d31d6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613812,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"1fe899e0-6ad7-4159-b5f9-6f34b32d31d6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613807,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4484,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613807} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613807,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613807,\"participants\":[{\"id\":1001690,\"user_id\":253,\"contact_id\":null,\"lead_id\":null},{\"id\":1001691,\"user_id\":null,\"contact_id\":4484,\"lead_id\":null}]} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613807,\"team_id\":2,\"email\":\"preslava.ivanova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":243,\"contact_id\":4484,\"owner_id\":253} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":243,\"contact_id\":4484} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":243,\"contact_id\":4484,\"opportunity_id\":276} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":1.06,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"6d49ffdc-2ed7-4eae-a1ee-e25ca95bbea8\",\"trace_id\":\"906573b5-005c-4820-8a32-3b0703ea86dd\"}\n[2026-05-11 11:09:17] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"tsvetomir.banovski@gmail.com\"} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613807,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613807} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613807,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613807,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4484,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613806,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34}} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613806} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613806,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613806,\"participants\":[{\"id\":1001688,\"user_id\":253,\"contact_id\":null,\"lead_id\":null},{\"id\":1001689,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null}]} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613806,\"team_id\":2,\"email\":\"preslava.ivanova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":253} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":244,\"contact_id\":4487} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":350} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613806,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613806} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613806,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613806,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613805,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34}} {\"correlation_id\":\"e6a724a6-dc6e-4440-ab48-641336d6ca17\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613805} {\"correlation_id\":\"e6a724a6-dc6e-4440-ab48-641336d6ca17\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613805,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e6a724a6-dc6e-4440-ab48-641336d6ca17\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613805,\"participants\":[{\"id\":1001686,\"user_id\":253,\"contact_id\":null,\"lead_id\":null},{\"id\":1001687,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null}]} {\"correlation_id\":\"e6a724a6-dc6e-4440-ab48-641336d6ca17\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e6a724a6-dc6e-4440-ab48-641336d6ca17\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e6a724a6-dc6e-4440-ab48-641336d6ca17\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"e6a724a6-dc6e-4440-ab48-641336d6ca17\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"e6a724a6-dc6e-4440-ab48-641336d6ca17\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613805,\"team_id\":2,\"email\":\"preslava.ivanova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"e6a724a6-dc6e-4440-ab48-641336d6ca17\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"e6a724a6-dc6e-4440-ab48-641336d6ca17\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613805,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"e6a724a6-dc6e-4440-ab48-641336d6ca17\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613805} {\"correlation_id\":\"e6a724a6-dc6e-4440-ab48-641336d6ca17\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613805,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e6a724a6-dc6e-4440-ab48-641336d6ca17\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613805,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34} {\"correlation_id\":\"e6a724a6-dc6e-4440-ab48-641336d6ca17\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613698,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"67158d25-23dc-4314-8813-caa3c43fa3f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613698} {\"correlation_id\":\"67158d25-23dc-4314-8813-caa3c43fa3f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613698,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"67158d25-23dc-4314-8813-caa3c43fa3f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613698,\"participants\":[{\"id\":1001667,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1001668,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"67158d25-23dc-4314-8813-caa3c43fa3f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"67158d25-23dc-4314-8813-caa3c43fa3f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"67158d25-23dc-4314-8813-caa3c43fa3f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"67158d25-23dc-4314-8813-caa3c43fa3f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"67158d25-23dc-4314-8813-caa3c43fa3f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"67158d25-23dc-4314-8813-caa3c43fa3f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613698,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"67158d25-23dc-4314-8813-caa3c43fa3f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613698,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"67158d25-23dc-4314-8813-caa3c43fa3f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613698} {\"correlation_id\":\"67158d25-23dc-4314-8813-caa3c43fa3f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613698,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"67158d25-23dc-4314-8813-caa3c43fa3f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613698,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"67158d25-23dc-4314-8813-caa3c43fa3f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613697,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"8d2a290e-88e6-494a-91c2-f63f0338f30f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613697} {\"correlation_id\":\"8d2a290e-88e6-494a-91c2-f63f0338f30f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613697,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8d2a290e-88e6-494a-91c2-f63f0338f30f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613697,\"participants\":[{\"id\":1001665,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1001666,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"8d2a290e-88e6-494a-91c2-f63f0338f30f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8d2a290e-88e6-494a-91c2-f63f0338f30f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8d2a290e-88e6-494a-91c2-f63f0338f30f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"8d2a290e-88e6-494a-91c2-f63f0338f30f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"8d2a290e-88e6-494a-91c2-f63f0338f30f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"8d2a290e-88e6-494a-91c2-f63f0338f30f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613697,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"8d2a290e-88e6-494a-91c2-f63f0338f30f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613697,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"8d2a290e-88e6-494a-91c2-f63f0338f30f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613697} {\"correlation_id\":\"8d2a290e-88e6-494a-91c2-f63f0338f30f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613697,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8d2a290e-88e6-494a-91c2-f63f0338f30f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613697,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"8d2a290e-88e6-494a-91c2-f63f0338f30f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613696,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"d1c50e93-0488-4315-a739-f89181b77d87\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613696} {\"correlation_id\":\"d1c50e93-0488-4315-a739-f89181b77d87\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613696,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d1c50e93-0488-4315-a739-f89181b77d87\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613696,\"participants\":[{\"id\":1001663,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1001664,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"d1c50e93-0488-4315-a739-f89181b77d87\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d1c50e93-0488-4315-a739-f89181b77d87\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d1c50e93-0488-4315-a739-f89181b77d87\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"d1c50e93-0488-4315-a739-f89181b77d87\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"d1c50e93-0488-4315-a739-f89181b77d87\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"d1c50e93-0488-4315-a739-f89181b77d87\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613696,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"d1c50e93-0488-4315-a739-f89181b77d87\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613696,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"d1c50e93-0488-4315-a739-f89181b77d87\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613696} {\"correlation_id\":\"d1c50e93-0488-4315-a739-f89181b77d87\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613696,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d1c50e93-0488-4315-a739-f89181b77d87\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613696,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"d1c50e93-0488-4315-a739-f89181b77d87\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613695,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"6dbd1e2c-b89e-47b6-9c2f-d9d7a56b5383\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613695} {\"correlation_id\":\"6dbd1e2c-b89e-47b6-9c2f-d9d7a56b5383\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613695,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"6dbd1e2c-b89e-47b6-9c2f-d9d7a56b5383\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613695,\"participants\":[{\"id\":1001661,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1001662,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"6dbd1e2c-b89e-47b6-9c2f-d9d7a56b5383\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"6dbd1e2c-b89e-47b6-9c2f-d9d7a56b5383\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"6dbd1e2c-b89e-47b6-9c2f-d9d7a56b5383\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"6dbd1e2c-b89e-47b6-9c2f-d9d7a56b5383\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"6dbd1e2c-b89e-47b6-9c2f-d9d7a56b5383\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"6dbd1e2c-b89e-47b6-9c2f-d9d7a56b5383\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613695,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"6dbd1e2c-b89e-47b6-9c2f-d9d7a56b5383\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613695,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"6dbd1e2c-b89e-47b6-9c2f-d9d7a56b5383\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613695} {\"correlation_id\":\"6dbd1e2c-b89e-47b6-9c2f-d9d7a56b5383\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613695,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"6dbd1e2c-b89e-47b6-9c2f-d9d7a56b5383\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613695,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"6dbd1e2c-b89e-47b6-9c2f-d9d7a56b5383\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613694,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"cd14d297-e2e1-425f-b745-361ca50df005\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613694} {\"correlation_id\":\"cd14d297-e2e1-425f-b745-361ca50df005\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613694,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cd14d297-e2e1-425f-b745-361ca50df005\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613694,\"participants\":[{\"id\":1001659,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1001660,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"cd14d297-e2e1-425f-b745-361ca50df005\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cd14d297-e2e1-425f-b745-361ca50df005\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cd14d297-e2e1-425f-b745-361ca50df005\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cd14d297-e2e1-425f-b745-361ca50df005\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"cd14d297-e2e1-425f-b745-361ca50df005\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"cd14d297-e2e1-425f-b745-361ca50df005\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613694,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"cd14d297-e2e1-425f-b745-361ca50df005\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613694,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"cd14d297-e2e1-425f-b745-361ca50df005\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613694} {\"correlation_id\":\"cd14d297-e2e1-425f-b745-361ca50df005\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613694,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cd14d297-e2e1-425f-b745-361ca50df005\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613694,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"cd14d297-e2e1-425f-b745-361ca50df005\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613157,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34}} {\"correlation_id\":\"ed6d3fa0-08c4-412f-b60d-4582c6dfa704\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613157} {\"correlation_id\":\"ed6d3fa0-08c4-412f-b60d-4582c6dfa704\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613157,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ed6d3fa0-08c4-412f-b60d-4582c6dfa704\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613157,\"participants\":[{\"id\":1000746,\"user_id\":253,\"contact_id\":null,\"lead_id\":null},{\"id\":1000747,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null}]} {\"correlation_id\":\"ed6d3fa0-08c4-412f-b60d-4582c6dfa704\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ed6d3fa0-08c4-412f-b60d-4582c6dfa704\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ed6d3fa0-08c4-412f-b60d-4582c6dfa704\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ed6d3fa0-08c4-412f-b60d-4582c6dfa704\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ed6d3fa0-08c4-412f-b60d-4582c6dfa704\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613157,\"team_id\":2,\"email\":\"preslava.ivanova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"ed6d3fa0-08c4-412f-b60d-4582c6dfa704\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"ed6d3fa0-08c4-412f-b60d-4582c6dfa704\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613157,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"ed6d3fa0-08c4-412f-b60d-4582c6dfa704\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613157} {\"correlation_id\":\"ed6d3fa0-08c4-412f-b60d-4582c6dfa704\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613157,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ed6d3fa0-08c4-412f-b60d-4582c6dfa704\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613157,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34} {\"correlation_id\":\"ed6d3fa0-08c4-412f-b60d-4582c6dfa704\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613156,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34}} {\"correlation_id\":\"77af6469-661f-4d4b-b741-a5b059c8b181\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613156} {\"correlation_id\":\"77af6469-661f-4d4b-b741-a5b059c8b181\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613156,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"77af6469-661f-4d4b-b741-a5b059c8b181\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613156,\"participants\":[{\"id\":1000744,\"user_id\":253,\"contact_id\":null,\"lead_id\":null},{\"id\":1000745,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null}]} {\"correlation_id\":\"77af6469-661f-4d4b-b741-a5b059c8b181\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"77af6469-661f-4d4b-b741-a5b059c8b181\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"77af6469-661f-4d4b-b741-a5b059c8b181\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"77af6469-661f-4d4b-b741-a5b059c8b181\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"77af6469-661f-4d4b-b741-a5b059c8b181\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613156,\"team_id\":2,\"email\":\"preslava.ivanova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"77af6469-661f-4d4b-b741-a5b059c8b181\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"77af6469-661f-4d4b-b741-a5b059c8b181\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613156,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"77af6469-661f-4d4b-b741-a5b059c8b181\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613156} {\"correlation_id\":\"77af6469-661f-4d4b-b741-a5b059c8b181\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613156,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"77af6469-661f-4d4b-b741-a5b059c8b181\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613156,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34} {\"correlation_id\":\"77af6469-661f-4d4b-b741-a5b059c8b181\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613155,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34}} {\"correlation_id\":\"6cd64b7d-2826-41b3-83e4-000c5cd88462\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613155} {\"correlation_id\":\"6cd64b7d-2826-41b3-83e4-000c5cd88462\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613155,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"6cd64b7d-2826-41b3-83e4-000c5cd88462\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613155,\"participants\":[{\"id\":1000742,\"user_id\":253,\"contact_id\":null,\"lead_id\":null},{\"id\":1000743,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null}]} {\"correlation_id\":\"6cd64b7d-2826-41b3-83e4-000c5cd88462\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"6cd64b7d-2826-41b3-83e4-000c5cd88462\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"6cd64b7d-2826-41b3-83e4-000c5cd88462\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"6cd64b7d-2826-41b3-83e4-000c5cd88462\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"6cd64b7d-2826-41b3-83e4-000c5cd88462\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613155,\"team_id\":2,\"email\":\"preslava.ivanova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"6cd64b7d-2826-41b3-83e4-000c5cd88462\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"6cd64b7d-2826-41b3-83e4-000c5cd88462\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613155,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"6cd64b7d-2826-41b3-83e4-000c5cd88462\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613155} {\"correlation_id\":\"6cd64b7d-2826-41b3-83e4-000c5cd88462\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613155,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"6cd64b7d-2826-41b3-83e4-000c5cd88462\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613155,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34} {\"correlation_id\":\"6cd64b7d-2826-41b3-83e4-000c5cd88462\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613130,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"8d0dfbe8-30bd-4332-bf52-762b3a44300b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613130} {\"correlation_id\":\"8d0dfbe8-30bd-4332-bf52-762b3a44300b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613130,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8d0dfbe8-30bd-4332-bf52-762b3a44300b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613130,\"participants\":[{\"id\":1000693,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1000694,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"8d0dfbe8-30bd-4332-bf52-762b3a44300b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8d0dfbe8-30bd-4332-bf52-762b3a44300b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8d0dfbe8-30bd-4332-bf52-762b3a44300b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"8d0dfbe8-30bd-4332-bf52-762b3a44300b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"8d0dfbe8-30bd-4332-bf52-762b3a44300b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"8d0dfbe8-30bd-4332-bf52-762b3a44300b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613130,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"8d0dfbe8-30bd-4332-bf52-762b3a44300b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613130,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"8d0dfbe8-30bd-4332-bf52-762b3a44300b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613130} {\"correlation_id\":\"8d0dfbe8-30bd-4332-bf52-762b3a44300b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613130,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8d0dfbe8-30bd-4332-bf52-762b3a44300b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613130,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"8d0dfbe8-30bd-4332-bf52-762b3a44300b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612924,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":165,\"stage_id\":89}} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612924} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612924,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612924,\"participants\":[{\"id\":1000290,\"user_id\":19,\"contact_id\":null,\"lead_id\":null},{\"id\":1000291,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612924,\"team_id\":2,\"email\":\"james.graham@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":69,\"contact_id\":97,\"owner_id\":19} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":69,\"contact_id\":97,\"opportunity_id\":165} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612924,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612924} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612924,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612924,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":165,\"stage_id\":89} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:23] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612923,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":165,\"stage_id\":89}} {\"correlation_id\":\"773e5722-a5c7-48ec-b0d8-11b3aa2aa37a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:23] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612923} {\"correlation_id\":\"773e5722-a5c7-48ec-b0d8-11b3aa2aa37a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:23] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612923,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"773e5722-a5c7-48ec-b0d8-11b3aa2aa37a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:23] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612923,\"participants\":[{\"id\":1000288,\"user_id\":19,\"contact_id\":null,\"lead_id\":null},{\"id\":1000289,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"773e5722-a5c7-48ec-b0d8-11b3aa2aa37a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:23] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"773e5722-a5c7-48ec-b0d8-11b3aa2aa37a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:23] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"773e5722-a5c7-48ec-b0d8-11b3aa2aa37a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:23] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"773e5722-a5c7-48ec-b0d8-11b3aa2aa37a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:23] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"773e5722-a5c7-48ec-b0d8-11b3aa2aa37a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:23] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612923,\"team_id\":2,\"email\":\"james.graham@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"773e5722-a5c7-48ec-b0d8-11b3aa2aa37a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:23] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"773e5722-a5c7-48ec-b0d8-11b3aa2aa37a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:23] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612923,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"773e5722-a5c7-48ec-b0d8-11b3aa2aa37a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:24] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612923} {\"correlation_id\":\"773e5722-a5c7-48ec-b0d8-11b3aa2aa37a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:24] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612923,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"773e5722-a5c7-48ec-b0d8-11b3aa2aa37a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:24] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612923,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":165,\"stage_id\":89} {\"correlation_id\":\"773e5722-a5c7-48ec-b0d8-11b3aa2aa37a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:24] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612922,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":165,\"stage_id\":89}} {\"correlation_id\":\"7d6f9c8c-16e0-4f84-b07d-adddfa5c739f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:24] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612922} {\"correlation_id\":\"7d6f9c8c-16e0-4f84-b07d-adddfa5c739f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:24] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612922,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7d6f9c8c-16e0-4f84-b07d-adddfa5c739f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:24] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612922,\"participants\":[{\"id\":1000286,\"user_id\":19,\"contact_id\":null,\"lead_id\":null},{\"id\":1000287,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"7d6f9c8c-16e0-4f84-b07d-adddfa5c739f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:24] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7d6f9c8c-16e0-4f84-b07d-adddfa5c739f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:24] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7d6f9c8c-16e0-4f84-b07d-adddfa5c739f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7d6f9c8c-16e0-4f84-b07d-adddfa5c739f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"7d6f9c8c-16e0-4f84-b07d-adddfa5c739f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612922,\"team_id\":2,\"email\":\"james.graham@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"7d6f9c8c-16e0-4f84-b07d-adddfa5c739f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"7d6f9c8c-16e0-4f84-b07d-adddfa5c739f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612922,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"7d6f9c8c-16e0-4f84-b07d-adddfa5c739f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612922} {\"correlation_id\":\"7d6f9c8c-16e0-4f84-b07d-adddfa5c739f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612922,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7d6f9c8c-16e0-4f84-b07d-adddfa5c739f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612922,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":165,\"stage_id\":89} {\"correlation_id\":\"7d6f9c8c-16e0-4f84-b07d-adddfa5c739f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612847,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"462c34b9-0b57-4e81-a9e2-5ce4a6900814\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612847} {\"correlation_id\":\"462c34b9-0b57-4e81-a9e2-5ce4a6900814\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612847,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"462c34b9-0b57-4e81-a9e2-5ce4a6900814\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612847,\"participants\":[{\"id\":1000130,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":1000131,\"user_id\":261,\"contact_id\":null,\"lead_id\":null},{\"id\":1000151,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null}]} {\"correlation_id\":\"462c34b9-0b57-4e81-a9e2-5ce4a6900814\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"462c34b9-0b57-4e81-a9e2-5ce4a6900814\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"462c34b9-0b57-4e81-a9e2-5ce4a6900814\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"462c34b9-0b57-4e81-a9e2-5ce4a6900814\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"462c34b9-0b57-4e81-a9e2-5ce4a6900814\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"correlation_id\":\"462c34b9-0b57-4e81-a9e2-5ce4a6900814\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"503de928-3a1a-4314-a23f-ca2625111f7f\",\"trace_id\":\"7ee54e65-014c-4ae3-821a-dc0488dc10ed\"}\n[2026-05-11 11:09:26] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"503de928-3a1a-4314-a23f-ca2625111f7f\",\"trace_id\":\"7ee54e65-014c-4ae3-821a-dc0488dc10ed\"}\n[2026-05-11 11:09:26] local.INFO: [Hubspot] Failed to fetch contact {\"email\":\"adelina.petrova@jiminny.com\",\"reason\":\"[404] Client error: `GET https://api.hubapi.com/crm/v3/objects/contacts/adelina.petrova%40jiminny.com?properties=email%2Cfirstname%2Clastname%2Ccountry%2Cphone%2Cmobilephone%2Cjobtitle%2Chubspot_owner_id%2Cassociatedcompanyid%2Cphoto&archived=0&idProperty=email` resulted in a `404 Not Found` response\"} {\"correlation_id\":\"462c34b9-0b57-4e81-a9e2-5ce4a6900814\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:26] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"correlation_id\":\"462c34b9-0b57-4e81-a9e2-5ce4a6900814\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:26] local.WARNING: [Hubspot] No retry-after header or known message, using default {\"exception_class\":\"SevenShores\\\\Hubspot\\\\Exceptions\\\\BadRequest\",\"message\":\"\"} {\"correlation_id\":\"462c34b9-0b57-4e81-a9e2-5ce4a6900814\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:26] local.WARNING: [Hubspot] Received 429 from API {\"team_id\":2,\"config_id\":2,\"retry_after\":10,\"message\":\"\",\"reason\":\"Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response:\n{\\\"status\\\":\\\"error\\\",\\\"message\\\":\\\"You have reached your secondly limit.\\\",\\\"errorType\\\":\\\"RATE_LIMIT\\\",\\\"correlationId\\\":\\\"019e16ba-4 (truncated...)\n\"} {\"correlation_id\":\"462c34b9-0b57-4e81-a9e2-5ce4a6900814\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:26] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":10,\"delay\":14} {\"correlation_id\":\"462c34b9-0b57-4e81-a9e2-5ce4a6900814\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:26] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612822,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"ca259dfb-7b24-4406-9b61-a4f28761020b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:26] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612822} {\"correlation_id\":\"ca259dfb-7b24-4406-9b61-a4f28761020b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:26] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612822,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ca259dfb-7b24-4406-9b61-a4f28761020b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:26] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612822,\"participants\":[{\"id\":1000080,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1000081,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"ca259dfb-7b24-4406-9b61-a4f28761020b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ca259dfb-7b24-4406-9b61-a4f28761020b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ca259dfb-7b24-4406-9b61-a4f28761020b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ca259dfb-7b24-4406-9b61-a4f28761020b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ca259dfb-7b24-4406-9b61-a4f28761020b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"ca259dfb-7b24-4406-9b61-a4f28761020b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612822,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"ca259dfb-7b24-4406-9b61-a4f28761020b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612822,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"ca259dfb-7b24-4406-9b61-a4f28761020b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612822} {\"correlation_id\":\"ca259dfb-7b24-4406-9b61-a4f28761020b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612822,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ca259dfb-7b24-4406-9b61-a4f28761020b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612822,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"ca259dfb-7b24-4406-9b61-a4f28761020b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612819,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"cd602b18-88a5-4ea9-afef-e52be017fc0f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612819} {\"correlation_id\":\"cd602b18-88a5-4ea9-afef-e52be017fc0f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612819,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cd602b18-88a5-4ea9-afef-e52be017fc0f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612819,\"participants\":[{\"id\":1000073,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1000074,\"user_id\":261,\"contact_id\":null,\"lead_id\":null},{\"id\":1000075,\"user_id\":null,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"cd602b18-88a5-4ea9-afef-e52be017fc0f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cd602b18-88a5-4ea9-afef-e52be017fc0f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cd602b18-88a5-4ea9-afef-e52be017fc0f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cd602b18-88a5-4ea9-afef-e52be017fc0f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"cd602b18-88a5-4ea9-afef-e52be017fc0f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"cd602b18-88a5-4ea9-afef-e52be017fc0f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612819,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"cd602b18-88a5-4ea9-afef-e52be017fc0f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"correlation_id\":\"cd602b18-88a5-4ea9-afef-e52be017fc0f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"correlation_id\":\"cd602b18-88a5-4ea9-afef-e52be017fc0f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":10,\"delay\":10} {\"correlation_id\":\"cd602b18-88a5-4ea9-afef-e52be017fc0f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612673,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"d86174e3-e3b0-41d6-b9f5-97de4ca4da9f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612673} {\"correlation_id\":\"d86174e3-e3b0-41d6-b9f5-97de4ca4da9f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612673,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d86174e3-e3b0-41d6-b9f5-97de4ca4da9f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612673,\"participants\":[{\"id\":999993,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":999994,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"d86174e3-e3b0-41d6-b9f5-97de4ca4da9f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d86174e3-e3b0-41d6-b9f5-97de4ca4da9f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d86174e3-e3b0-41d6-b9f5-97de4ca4da9f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"d86174e3-e3b0-41d6-b9f5-97de4ca4da9f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"d86174e3-e3b0-41d6-b9f5-97de4ca4da9f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"d86174e3-e3b0-41d6-b9f5-97de4ca4da9f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612673,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"d86174e3-e3b0-41d6-b9f5-97de4ca4da9f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612673,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"d86174e3-e3b0-41d6-b9f5-97de4ca4da9f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612673} {\"correlation_id\":\"d86174e3-e3b0-41d6-b9f5-97de4ca4da9f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612673,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d86174e3-e3b0-41d6-b9f5-97de4ca4da9f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612673,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"d86174e3-e3b0-41d6-b9f5-97de4ca4da9f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612642,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"2f9f8923-a6e3-4e5b-a1ae-cdea42bb3cda\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612642} {\"correlation_id\":\"2f9f8923-a6e3-4e5b-a1ae-cdea42bb3cda\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612642,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2f9f8923-a6e3-4e5b-a1ae-cdea42bb3cda\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612642,\"participants\":[{\"id\":999935,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":999936,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"2f9f8923-a6e3-4e5b-a1ae-cdea42bb3cda\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2f9f8923-a6e3-4e5b-a1ae-cdea42bb3cda\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2f9f8923-a6e3-4e5b-a1ae-cdea42bb3cda\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"2f9f8923-a6e3-4e5b-a1ae-cdea42bb3cda\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"2f9f8923-a6e3-4e5b-a1ae-cdea42bb3cda\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"2f9f8923-a6e3-4e5b-a1ae-cdea42bb3cda\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612642,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"2f9f8923-a6e3-4e5b-a1ae-cdea42bb3cda\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612642,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"2f9f8923-a6e3-4e5b-a1ae-cdea42bb3cda\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612642} {\"correlation_id\":\"2f9f8923-a6e3-4e5b-a1ae-cdea42bb3cda\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612642,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2f9f8923-a6e3-4e5b-a1ae-cdea42bb3cda\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612642,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"2f9f8923-a6e3-4e5b-a1ae-cdea42bb3cda\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612598,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612598} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612598,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612598,\"participants\":[{\"id\":999857,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999858,\"user_id\":206,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":243,\"contact_id\":4491,\"owner_id\":206} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":243,\"contact_id\":4491} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":243,\"contact_id\":4491,\"opportunity_id\":276} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612598,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612598,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612598} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612598,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612598,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":5.94,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"6d49ffdc-2ed7-4eae-a1ee-e25ca95bbea8\",\"trace_id\":\"906573b5-005c-4820-8a32-3b0703ea86dd\"}\n[2026-05-11 11:09:28] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612597,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"c69a3a24-bab5-4d56-887b-01111944b3a2\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612597} {\"correlation_id\":\"c69a3a24-bab5-4d56-887b-01111944b3a2\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612597,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"c69a3a24-bab5-4d56-887b-01111944b3a2\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612597,\"participants\":[{\"id\":999855,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999856,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null}]} {\"correlation_id\":\"c69a3a24-bab5-4d56-887b-01111944b3a2\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"c69a3a24-bab5-4d56-887b-01111944b3a2\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"c69a3a24-bab5-4d56-887b-01111944b3a2\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"c69a3a24-bab5-4d56-887b-01111944b3a2\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"c69a3a24-bab5-4d56-887b-01111944b3a2\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612597,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"c69a3a24-bab5-4d56-887b-01111944b3a2\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"c69a3a24-bab5-4d56-887b-01111944b3a2\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612597,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"c69a3a24-bab5-4d56-887b-01111944b3a2\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612597} {\"correlation_id\":\"c69a3a24-bab5-4d56-887b-01111944b3a2\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612597,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"c69a3a24-bab5-4d56-887b-01111944b3a2\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612597,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"c69a3a24-bab5-4d56-887b-01111944b3a2\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612596,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"0da9fc28-653b-406f-bafe-5d78010cb3da\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612596} {\"correlation_id\":\"0da9fc28-653b-406f-bafe-5d78010cb3da\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612596,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0da9fc28-653b-406f-bafe-5d78010cb3da\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612596,\"participants\":[{\"id\":999853,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999854,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null}]} {\"correlation_id\":\"0da9fc28-653b-406f-bafe-5d78010cb3da\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0da9fc28-653b-406f-bafe-5d78010cb3da\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0da9fc28-653b-406f-bafe-5d78010cb3da\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0da9fc28-653b-406f-bafe-5d78010cb3da\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0da9fc28-653b-406f-bafe-5d78010cb3da\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612596,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"0da9fc28-653b-406f-bafe-5d78010cb3da\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"0da9fc28-653b-406f-bafe-5d78010cb3da\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612596,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"0da9fc28-653b-406f-bafe-5d78010cb3da\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612596} {\"correlation_id\":\"0da9fc28-653b-406f-bafe-5d78010cb3da\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612596,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0da9fc28-653b-406f-bafe-5d78010cb3da\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612596,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"0da9fc28-653b-406f-bafe-5d78010cb3da\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612595,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"f7dd9c18-1f48-4adc-b2a2-a5e768444dfd\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612595} {\"correlation_id\":\"f7dd9c18-1f48-4adc-b2a2-a5e768444dfd\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612595,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"f7dd9c18-1f48-4adc-b2a2-a5e768444dfd\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612595,\"participants\":[{\"id\":999851,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999852,\"user_id\":206,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"f7dd9c18-1f48-4adc-b2a2-a5e768444dfd\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f7dd9c18-1f48-4adc-b2a2-a5e768444dfd\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f7dd9c18-1f48-4adc-b2a2-a5e768444dfd\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"f7dd9c18-1f48-4adc-b2a2-a5e768444dfd\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"f7dd9c18-1f48-4adc-b2a2-a5e768444dfd\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"f7dd9c18-1f48-4adc-b2a2-a5e768444dfd\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612595,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"f7dd9c18-1f48-4adc-b2a2-a5e768444dfd\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612595,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"f7dd9c18-1f48-4adc-b2a2-a5e768444dfd\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612595} {\"correlation_id\":\"f7dd9c18-1f48-4adc-b2a2-a5e768444dfd\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612595,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"f7dd9c18-1f48-4adc-b2a2-a5e768444dfd\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612595,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"f7dd9c18-1f48-4adc-b2a2-a5e768444dfd\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612594,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"4dacaa76-fc8b-462e-95ae-b74602d62a8f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612594} {\"correlation_id\":\"4dacaa76-fc8b-462e-95ae-b74602d62a8f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612594,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4dacaa76-fc8b-462e-95ae-b74602d62a8f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612594,\"participants\":[{\"id\":999849,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999850,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null}]} {\"correlation_id\":\"4dacaa76-fc8b-462e-95ae-b74602d62a8f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4dacaa76-fc8b-462e-95ae-b74602d62a8f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4dacaa76-fc8b-462e-95ae-b74602d62a8f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"4dacaa76-fc8b-462e-95ae-b74602d62a8f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"4dacaa76-fc8b-462e-95ae-b74602d62a8f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612594,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"4dacaa76-fc8b-462e-95ae-b74602d62a8f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"4dacaa76-fc8b-462e-95ae-b74602d62a8f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612594,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"4dacaa76-fc8b-462e-95ae-b74602d62a8f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612594} {\"correlation_id\":\"4dacaa76-fc8b-462e-95ae-b74602d62a8f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612594,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4dacaa76-fc8b-462e-95ae-b74602d62a8f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612594,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"4dacaa76-fc8b-462e-95ae-b74602d62a8f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612593,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"0845a766-3bc8-4303-83dc-9f0e57d46a44\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612593} {\"correlation_id\":\"0845a766-3bc8-4303-83dc-9f0e57d46a44\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612593,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0845a766-3bc8-4303-83dc-9f0e57d46a44\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612593,\"participants\":[{\"id\":999847,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999848,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null}]} {\"correlation_id\":\"0845a766-3bc8-4303-83dc-9f0e57d46a44\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0845a766-3bc8-4303-83dc-9f0e57d46a44\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0845a766-3bc8-4303-83dc-9f0e57d46a44\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0845a766-3bc8-4303-83dc-9f0e57d46a44\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0845a766-3bc8-4303-83dc-9f0e57d46a44\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612593,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"0845a766-3bc8-4303-83dc-9f0e57d46a44\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"0845a766-3bc8-4303-83dc-9f0e57d46a44\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612593,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"0845a766-3bc8-4303-83dc-9f0e57d46a44\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612593} {\"correlation_id\":\"0845a766-3bc8-4303-83dc-9f0e57d46a44\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612593,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0845a766-3bc8-4303-83dc-9f0e57d46a44\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612593,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"0845a766-3bc8-4303-83dc-9f0e57d46a44\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612592,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"315733d6-e316-4fb7-9ab6-c38b0bc2a394\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612592} {\"correlation_id\":\"315733d6-e316-4fb7-9ab6-c38b0bc2a394\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612592,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"315733d6-e316-4fb7-9ab6-c38b0bc2a394\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612592,\"participants\":[{\"id\":999845,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999846,\"user_id\":206,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"315733d6-e316-4fb7-9ab6-c38b0bc2a394\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"315733d6-e316-4fb7-9ab6-c38b0bc2a394\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"315733d6-e316-4fb7-9ab6-c38b0bc2a394\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"315733d6-e316-4fb7-9ab6-c38b0bc2a394\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"315733d6-e316-4fb7-9ab6-c38b0bc2a394\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"315733d6-e316-4fb7-9ab6-c38b0bc2a394\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612592,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"315733d6-e316-4fb7-9ab6-c38b0bc2a394\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612592,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"315733d6-e316-4fb7-9ab6-c38b0bc2a394\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612592} {\"correlation_id\":\"315733d6-e316-4fb7-9ab6-c38b0bc2a394\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612592,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"315733d6-e316-4fb7-9ab6-c38b0bc2a394\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612592,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"315733d6-e316-4fb7-9ab6-c38b0bc2a394\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612591,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"a4f3cee6-628d-4ea1-afef-271709541a6f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612591} {\"correlation_id\":\"a4f3cee6-628d-4ea1-afef-271709541a6f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612591,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a4f3cee6-628d-4ea1-afef-271709541a6f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612591,\"participants\":[{\"id\":999843,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999844,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null}]} {\"correlation_id\":\"a4f3cee6-628d-4ea1-afef-271709541a6f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a4f3cee6-628d-4ea1-afef-271709541a6f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a4f3cee6-628d-4ea1-afef-271709541a6f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"a4f3cee6-628d-4ea1-afef-271709541a6f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"a4f3cee6-628d-4ea1-afef-271709541a6f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612591,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"a4f3cee6-628d-4ea1-afef-271709541a6f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"a4f3cee6-628d-4ea1-afef-271709541a6f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612591,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"a4f3cee6-628d-4ea1-afef-271709541a6f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612591} {\"correlation_id\":\"a4f3cee6-628d-4ea1-afef-271709541a6f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612591,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a4f3cee6-628d-4ea1-afef-271709541a6f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612591,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"a4f3cee6-628d-4ea1-afef-271709541a6f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612590,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"dfa94946-5871-4106-8e8f-5e7a418e64ae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612590} {\"correlation_id\":\"dfa94946-5871-4106-8e8f-5e7a418e64ae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612590,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"dfa94946-5871-4106-8e8f-5e7a418e64ae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612590,\"participants\":[{\"id\":999841,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999842,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null}]} {\"correlation_id\":\"dfa94946-5871-4106-8e8f-5e7a418e64ae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"dfa94946-5871-4106-8e8f-5e7a418e64ae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"dfa94946-5871-4106-8e8f-5e7a418e64ae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"dfa94946-5871-4106-8e8f-5e7a418e64ae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"dfa94946-5871-4106-8e8f-5e7a418e64ae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612590,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"dfa94946-5871-4106-8e8f-5e7a418e64ae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"dfa94946-5871-4106-8e8f-5e7a418e64ae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612590,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"dfa94946-5871-4106-8e8f-5e7a418e64ae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612590} {\"correlation_id\":\"dfa94946-5871-4106-8e8f-5e7a418e64ae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612590,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"dfa94946-5871-4106-8e8f-5e7a418e64ae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612590,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"dfa94946-5871-4106-8e8f-5e7a418e64ae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612589,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"92666ef7-2d6e-4056-9d87-23df1bc694b1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612589} {\"correlation_id\":\"92666ef7-2d6e-4056-9d87-23df1bc694b1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612589,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"92666ef7-2d6e-4056-9d87-23df1bc694b1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612589,\"participants\":[{\"id\":999839,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999840,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null}]} {\"correlation_id\":\"92666ef7-2d6e-4056-9d87-23df1bc694b1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"92666ef7-2d6e-4056-9d87-23df1bc694b1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"92666ef7-2d6e-4056-9d87-23df1bc694b1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"92666ef7-2d6e-4056-9d87-23df1bc694b1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"92666ef7-2d6e-4056-9d87-23df1bc694b1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612589,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"92666ef7-2d6e-4056-9d87-23df1bc694b1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"92666ef7-2d6e-4056-9d87-23df1bc694b1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612589,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"92666ef7-2d6e-4056-9d87-23df1bc694b1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612589} {\"correlation_id\":\"92666ef7-2d6e-4056-9d87-23df1bc694b1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612589,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"92666ef7-2d6e-4056-9d87-23df1bc694b1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612589,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"92666ef7-2d6e-4056-9d87-23df1bc694b1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612588,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"7441c20c-f1d3-4310-a3a7-2c1aad9bbe25\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612588} {\"correlation_id\":\"7441c20c-f1d3-4310-a3a7-2c1aad9bbe25\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612588,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7441c20c-f1d3-4310-a3a7-2c1aad9bbe25\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612588,\"participants\":[{\"id\":999837,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999838,\"user_id\":206,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"7441c20c-f1d3-4310-a3a7-2c1aad9bbe25\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7441c20c-f1d3-4310-a3a7-2c1aad9bbe25\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7441c20c-f1d3-4310-a3a7-2c1aad9bbe25\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7441c20c-f1d3-4310-a3a7-2c1aad9bbe25\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"7441c20c-f1d3-4310-a3a7-2c1aad9bbe25\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"7441c20c-f1d3-4310-a3a7-2c1aad9bbe25\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612588,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"7441c20c-f1d3-4310-a3a7-2c1aad9bbe25\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612588,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"7441c20c-f1d3-4310-a3a7-2c1aad9bbe25\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612588} {\"correlation_id\":\"7441c20c-f1d3-4310-a3a7-2c1aad9bbe25\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612588,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7441c20c-f1d3-4310-a3a7-2c1aad9bbe25\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612588,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"7441c20c-f1d3-4310-a3a7-2c1aad9bbe25\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612587,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"b6283377-e461-4841-90a6-bd9b51c31e78\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612587} {\"correlation_id\":\"b6283377-e461-4841-90a6-bd9b51c31e78\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612587,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b6283377-e461-4841-90a6-bd9b51c31e78\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612587,\"participants\":[{\"id\":999835,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999836,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null}]} {\"correlation_id\":\"b6283377-e461-4841-90a6-bd9b51c31e78\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b6283377-e461-4841-90a6-bd9b51c31e78\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b6283377-e461-4841-90a6-bd9b51c31e78\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b6283377-e461-4841-90a6-bd9b51c31e78\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"b6283377-e461-4841-90a6-bd9b51c31e78\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612587,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"b6283377-e461-4841-90a6-bd9b51c31e78\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"b6283377-e461-4841-90a6-bd9b51c31e78\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612587,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"b6283377-e461-4841-90a6-bd9b51c31e78\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612587} {\"correlation_id\":\"b6283377-e461-4841-90a6-bd9b51c31e78\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612587,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b6283377-e461-4841-90a6-bd9b51c31e78\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612587,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"b6283377-e461-4841-90a6-bd9b51c31e78\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612586,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"d0ddb01c-2b21-4989-998a-fa52e7affced\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612586} {\"correlation_id\":\"d0ddb01c-2b21-4989-998a-fa52e7affced\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612586,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d0ddb01c-2b21-4989-998a-fa52e7affced\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612586,\"participants\":[{\"id\":999833,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999834,\"user_id\":206,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"d0ddb01c-2b21-4989-998a-fa52e7affced\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d0ddb01c-2b21-4989-998a-fa52e7affced\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d0ddb01c-2b21-4989-998a-fa52e7affced\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"d0ddb01c-2b21-4989-998a-fa52e7affced\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"d0ddb01c-2b21-4989-998a-fa52e7affced\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"d0ddb01c-2b21-4989-998a-fa52e7affced\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612586,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"d0ddb01c-2b21-4989-998a-fa52e7affced\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612586,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"d0ddb01c-2b21-4989-998a-fa52e7affced\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612586} {\"correlation_id\":\"d0ddb01c-2b21-4989-998a-fa52e7affced\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612586,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d0ddb01c-2b21-4989-998a-fa52e7affced\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612586,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"d0ddb01c-2b21-4989-998a-fa52e7affced\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.NOTICE: Monitoring start {\"correlation_id\":\"772cf24f-66f8-49c0-8ef5-e6c1d128fccb\",\"trace_id\":\"2d950f5a-3a35-4a8b-b33b-4d129409925b\"}\n[2026-05-11 11:09:31] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612585,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"cef11ffe-61af-425d-b899-399323237a47\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612585} {\"correlation_id\":\"cef11ffe-61af-425d-b899-399323237a47\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612585,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cef11ffe-61af-425d-b899-399323237a47\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.NOTICE: Monitoring end {\"correlation_id\":\"772cf24f-66f8-49c0-8ef5-e6c1d128fccb\",\"trace_id\":\"2d950f5a-3a35-4a8b-b33b-4d129409925b\"}\n[2026-05-11 11:09:31] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612585,\"participants\":[{\"id\":999831,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999832,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null}]} {\"correlation_id\":\"cef11ffe-61af-425d-b899-399323237a47\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cef11ffe-61af-425d-b899-399323237a47\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cef11ffe-61af-425d-b899-399323237a47\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cef11ffe-61af-425d-b899-399323237a47\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"cef11ffe-61af-425d-b899-399323237a47\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612585,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"cef11ffe-61af-425d-b899-399323237a47\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"cef11ffe-61af-425d-b899-399323237a47\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612585,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"cef11ffe-61af-425d-b899-399323237a47\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612585} {\"correlation_id\":\"cef11ffe-61af-425d-b899-399323237a47\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612585,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cef11ffe-61af-425d-b899-399323237a47\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612585,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"cef11ffe-61af-425d-b899-399323237a47\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612584,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"2aa83935-5a46-4a3d-98d7-acfcf3f3f6cb\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612584} {\"correlation_id\":\"2aa83935-5a46-4a3d-98d7-acfcf3f3f6cb\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612584,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2aa83935-5a46-4a3d-98d7-acfcf3f3f6cb\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612584,\"participants\":[{\"id\":999829,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999830,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null}]} {\"correlation_id\":\"2aa83935-5a46-4a3d-98d7-acfcf3f3f6cb\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2aa83935-5a46-4a3d-98d7-acfcf3f3f6cb\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2aa83935-5a46-4a3d-98d7-acfcf3f3f6cb\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"2aa83935-5a46-4a3d-98d7-acfcf3f3f6cb\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"2aa83935-5a46-4a3d-98d7-acfcf3f3f6cb\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612584,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"2aa83935-5a46-4a3d-98d7-acfcf3f3f6cb\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"2aa83935-5a46-4a3d-98d7-acfcf3f3f6cb\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612584,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"2aa83935-5a46-4a3d-98d7-acfcf3f3f6cb\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612584} {\"correlation_id\":\"2aa83935-5a46-4a3d-98d7-acfcf3f3f6cb\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612584,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2aa83935-5a46-4a3d-98d7-acfcf3f3f6cb\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612584,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"2aa83935-5a46-4a3d-98d7-acfcf3f3f6cb\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612583,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"04dd4d55-bdb2-4f42-9fbd-8a132707b475\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612583} {\"correlation_id\":\"04dd4d55-bdb2-4f42-9fbd-8a132707b475\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612583,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"04dd4d55-bdb2-4f42-9fbd-8a132707b475\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612583,\"participants\":[{\"id\":999827,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999828,\"user_id\":206,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"04dd4d55-bdb2-4f42-9fbd-8a132707b475\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"04dd4d55-bdb2-4f42-9fbd-8a132707b475\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"04dd4d55-bdb2-4f42-9fbd-8a132707b475\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"04dd4d55-bdb2-4f42-9fbd-8a132707b475\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"04dd4d55-bdb2-4f42-9fbd-8a132707b475\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"04dd4d55-bdb2-4f42-9fbd-8a132707b475\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612583,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"04dd4d55-bdb2-4f42-9fbd-8a132707b475\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612583,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"04dd4d55-bdb2-4f42-9fbd-8a132707b475\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612583} {\"correlation_id\":\"04dd4d55-bdb2-4f42-9fbd-8a132707b475\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612583,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"04dd4d55-bdb2-4f42-9fbd-8a132707b475\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612583,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"04dd4d55-bdb2-4f42-9fbd-8a132707b475\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612582,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"58e7116b-76f4-4698-a629-ff1eb613d93e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612582} {\"correlation_id\":\"58e7116b-76f4-4698-a629-ff1eb613d93e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612582,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"58e7116b-76f4-4698-a629-ff1eb613d93e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612582,\"participants\":[{\"id\":999825,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999826,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null}]} {\"correlation_id\":\"58e7116b-76f4-4698-a629-ff1eb613d93e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"58e7116b-76f4-4698-a629-ff1eb613d93e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"58e7116b-76f4-4698-a629-ff1eb613d93e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"58e7116b-76f4-4698-a629-ff1eb613d93e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"58e7116b-76f4-4698-a629-ff1eb613d93e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612582,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"58e7116b-76f4-4698-a629-ff1eb613d93e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"58e7116b-76f4-4698-a629-ff1eb613d93e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612582,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"58e7116b-76f4-4698-a629-ff1eb613d93e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612582} {\"correlation_id\":\"58e7116b-76f4-4698-a629-ff1eb613d93e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612582,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"58e7116b-76f4-4698-a629-ff1eb613d93e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612582,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"58e7116b-76f4-4698-a629-ff1eb613d93e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612581,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"b1cdf1eb-a77f-4062-bc7a-52e75ec005f1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612581} {\"correlation_id\":\"b1cdf1eb-a77f-4062-bc7a-52e75ec005f1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612581,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b1cdf1eb-a77f-4062-bc7a-52e75ec005f1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612581,\"participants\":[{\"id\":999823,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999824,\"user_id\":206,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"b1cdf1eb-a77f-4062-bc7a-52e75ec005f1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b1cdf1eb-a77f-4062-bc7a-52e75ec005f1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b1cdf1eb-a77f-4062-bc7a-52e75ec005f1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b1cdf1eb-a77f-4062-bc7a-52e75ec005f1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"b1cdf1eb-a77f-4062-bc7a-52e75ec005f1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"b1cdf1eb-a77f-4062-bc7a-52e75ec005f1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612581,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"b1cdf1eb-a77f-4062-bc7a-52e75ec005f1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612581,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"b1cdf1eb-a77f-4062-bc7a-52e75ec005f1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612581} {\"correlation_id\":\"b1cdf1eb-a77f-4062-bc7a-52e75ec005f1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612581,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b1cdf1eb-a77f-4062-bc7a-52e75ec005f1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612581,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"b1cdf1eb-a77f-4062-bc7a-52e75ec005f1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612565,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"4531fd00-7875-4334-b3c2-407d31ec1255\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612565} {\"correlation_id\":\"4531fd00-7875-4334-b3c2-407d31ec1255\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612565,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4531fd00-7875-4334-b3c2-407d31ec1255\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612565,\"participants\":[{\"id\":999789,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999790,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null}]} {\"correlation_id\":\"4531fd00-7875-4334-b3c2-407d31ec1255\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4531fd00-7875-4334-b3c2-407d31ec1255\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4531fd00-7875-4334-b3c2-407d31ec1255\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"4531fd00-7875-4334-b3c2-407d31ec1255\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"4531fd00-7875-4334-b3c2-407d31ec1255\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612565,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"4531fd00-7875-4334-b3c2-407d31ec1255\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"4531fd00-7875-4334-b3c2-407d31ec1255\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612565,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"4531fd00-7875-4334-b3c2-407d31ec1255\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612565} {\"correlation_id\":\"4531fd00-7875-4334-b3c2-407d31ec1255\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612565,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4531fd00-7875-4334-b3c2-407d31ec1255\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612565,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"4531fd00-7875-4334-b3c2-407d31ec1255\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612563,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34}} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612563} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612563,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612563,\"participants\":[{\"id\":999784,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999785,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null}]} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612563,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":206} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":244,\"contact_id\":4487} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":350} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612563,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612563} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612563,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612563,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612562,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"correlation_id\":\"096bc408-0a3f-43ef-9cf6-f9007ee7315c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612562} {\"correlation_id\":\"096bc408-0a3f-43ef-9cf6-f9007ee7315c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612562,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"096bc408-0a3f-43ef-9cf6-f9007ee7315c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612562,\"participants\":[{\"id\":999782,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":999783,\"user_id\":206,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"096bc408-0a3f-43ef-9cf6-f9007ee7315c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"096bc408-0a3f-43ef-9cf6-f9007ee7315c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"096bc408-0a3f-43ef-9cf6-f9007ee7315c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"096bc408-0a3f-43ef-9cf6-f9007ee7315c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"096bc408-0a3f-43ef-9cf6-f9007ee7315c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"447782589921@txt.staging.jiminny.com\"} {\"correlation_id\":\"096bc408-0a3f-43ef-9cf6-f9007ee7315c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:34] local.INFO: [Hubspot] Failed to fetch contact {\"email\":\"447782589921@txt.staging.jiminny.com\",\"reason\":\"[404] Client error: `GET https://api.hubapi.com/crm/v3/objects/contacts/447782589921%40txt.staging.jiminny.com?properties=email%2Cfirstname%2Clastname%2Ccountry%2Cphone%2Cmobilephone%2Cjobtitle%2Chubspot_owner_id%2Cassociatedcompanyid%2Cphoto&archived=0&idProperty=email` resulted in a `404 Not Found` response\"} {\"correlation_id\":\"096bc408-0a3f-43ef-9cf6-f9007ee7315c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:34] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {\"identifier_type\":\"email\",\"identifier\":\"447782589921@txt.staging.jiminny.com\"} {\"correlation_id\":\"096bc408-0a3f-43ef-9cf6-f9007ee7315c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:34] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":10,\"delay\":14} {\"correlation_id\":\"096bc408-0a3f-43ef-9cf6-f9007ee7315c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:34] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612561,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"correlation_id\":\"cded6bdb-0e7c-4baa-b280-5798e81b236a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:34] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612561} {\"correlation_id\":\"cded6bdb-0e7c-4baa-b280-5798e81b236a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:34] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612561,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cded6bdb-0e7c-4baa-b280-5798e81b236a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:34] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612561,\"participants\":[{\"id\":999780,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999781,\"user_id\":null,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"cded6bdb-0e7c-4baa-b280-5798e81b236a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:34] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cded6bdb-0e7c-4baa-b280-5798e81b236a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:34] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cded6bdb-0e7c-4baa-b280-5798e81b236a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:34] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cded6bdb-0e7c-4baa-b280-5798e81b236a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:34] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"cded6bdb-0e7c-4baa-b280-5798e81b236a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:34] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612561,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"cded6bdb-0e7c-4baa-b280-5798e81b236a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:34] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"447700174614.447782589921.OeREojLVnk@txt.staging.jiminny.com\"} {\"correlation_id\":\"cded6bdb-0e7c-4baa-b280-5798e81b236a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [Hubspot] Failed to fetch contact {\"email\":\"447700174614.447782589921.OeREojLVnk@txt.staging.jiminny.com\",\"reason\":\"[404] Client error: `GET https://api.hubapi.com/crm/v3/objects/contacts/447700174614.447782589921.OeREojLVnk%40txt.staging.jiminny.com?properties=email%2Cfirstname%2Clastname%2Ccountry%2Cphone%2Cmobilephone%2Cjobtitle%2Chubspot_owner_id%2Cassociatedcompanyid%2Cphoto&archived=0&idProperty=email` resulted in a `404 Not Found` response\"} {\"correlation_id\":\"cded6bdb-0e7c-4baa-b280-5798e81b236a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {\"identifier_type\":\"email\",\"identifier\":\"447700174614.447782589921.OeREojLVnk@txt.staging.jiminny.com\"} {\"correlation_id\":\"cded6bdb-0e7c-4baa-b280-5798e81b236a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":10,\"delay\":10} {\"correlation_id\":\"cded6bdb-0e7c-4baa-b280-5798e81b236a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612560,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"correlation_id\":\"53ef5599-df42-4f3d-90a1-8f89c19435e4\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612560} {\"correlation_id\":\"53ef5599-df42-4f3d-90a1-8f89c19435e4\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612560,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"53ef5599-df42-4f3d-90a1-8f89c19435e4\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612560,\"participants\":[{\"id\":999778,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":999779,\"user_id\":206,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"53ef5599-df42-4f3d-90a1-8f89c19435e4\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"53ef5599-df42-4f3d-90a1-8f89c19435e4\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"53ef5599-df42-4f3d-90a1-8f89c19435e4\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"53ef5599-df42-4f3d-90a1-8f89c19435e4\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"53ef5599-df42-4f3d-90a1-8f89c19435e4\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"447782589921@txt.staging.jiminny.com\"} {\"correlation_id\":\"53ef5599-df42-4f3d-90a1-8f89c19435e4\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"447782589921@txt.staging.jiminny.com\"} {\"correlation_id\":\"53ef5599-df42-4f3d-90a1-8f89c19435e4\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":10,\"delay\":12} {\"correlation_id\":\"53ef5599-df42-4f3d-90a1-8f89c19435e4\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612559,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34}} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612559} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612559,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612559,\"participants\":[{\"id\":999776,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999777,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612559,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":69,\"contact_id\":97,\"owner_id\":206} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":69,\"contact_id\":97} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":69,\"contact_id\":97,\"opportunity_id\":5011} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":2.07,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"6d49ffdc-2ed7-4eae-a1ee-e25ca95bbea8\",\"trace_id\":\"906573b5-005c-4820-8a32-3b0703ea86dd\"}\n[2026-05-11 11:09:35] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612559,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612559} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612559,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612559,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612558,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34}} {\"correlation_id\":\"34a7b1c6-be3b-4790-a04c-0311e25dadc8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612558} {\"correlation_id\":\"34a7b1c6-be3b-4790-a04c-0311e25dadc8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612558,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"34a7b1c6-be3b-4790-a04c-0311e25dadc8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612558,\"participants\":[{\"id\":999774,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999775,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"34a7b1c6-be3b-4790-a04c-0311e25dadc8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"34a7b1c6-be3b-4790-a04c-0311e25dadc8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"34a7b1c6-be3b-4790-a04c-0311e25dadc8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"34a7b1c6-be3b-4790-a04c-0311e25dadc8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"34a7b1c6-be3b-4790-a04c-0311e25dadc8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612558,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"34a7b1c6-be3b-4790-a04c-0311e25dadc8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"34a7b1c6-be3b-4790-a04c-0311e25dadc8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612558,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"34a7b1c6-be3b-4790-a04c-0311e25dadc8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612558} {\"correlation_id\":\"34a7b1c6-be3b-4790-a04c-0311e25dadc8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612558,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"34a7b1c6-be3b-4790-a04c-0311e25dadc8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612558,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34} {\"correlation_id\":\"34a7b1c6-be3b-4790-a04c-0311e25dadc8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612557,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34}} {\"correlation_id\":\"26d4d3d0-ebf8-44ad-a48f-24728e5539e0\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612557} {\"correlation_id\":\"26d4d3d0-ebf8-44ad-a48f-24728e5539e0\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612557,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"26d4d3d0-ebf8-44ad-a48f-24728e5539e0\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612557,\"participants\":[{\"id\":999772,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999773,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"26d4d3d0-ebf8-44ad-a48f-24728e5539e0\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"26d4d3d0-ebf8-44ad-a48f-24728e5539e0\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"26d4d3d0-ebf8-44ad-a48f-24728e5539e0\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"26d4d3d0-ebf8-44ad-a48f-24728e5539e0\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"26d4d3d0-ebf8-44ad-a48f-24728e5539e0\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612557,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"26d4d3d0-ebf8-44ad-a48f-24728e5539e0\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"26d4d3d0-ebf8-44ad-a48f-24728e5539e0\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612557,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"26d4d3d0-ebf8-44ad-a48f-24728e5539e0\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612557} {\"correlation_id\":\"26d4d3d0-ebf8-44ad-a48f-24728e5539e0\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612557,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"26d4d3d0-ebf8-44ad-a48f-24728e5539e0\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612557,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34} {\"correlation_id\":\"26d4d3d0-ebf8-44ad-a48f-24728e5539e0\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612556,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34}} {\"correlation_id\":\"406b7ad3-26d6-4b1b-9ad7-fff68622b149\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612556} {\"correlation_id\":\"406b7ad3-26d6-4b1b-9ad7-fff68622b149\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612556,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"406b7ad3-26d6-4b1b-9ad7-fff68622b149\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612556,\"participants\":[{\"id\":999770,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999771,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"406b7ad3-26d6-4b1b-9ad7-fff68622b149\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"406b7ad3-26d6-4b1b-9ad7-fff68622b149\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"406b7ad3-26d6-4b1b-9ad7-fff68622b149\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"406b7ad3-26d6-4b1b-9ad7-fff68622b149\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"406b7ad3-26d6-4b1b-9ad7-fff68622b149\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612556,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"406b7ad3-26d6-4b1b-9ad7-fff68622b149\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"406b7ad3-26d6-4b1b-9ad7-fff68622b149\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612556,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"406b7ad3-26d6-4b1b-9ad7-fff68622b149\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612556} {\"correlation_id\":\"406b7ad3-26d6-4b1b-9ad7-fff68622b149\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612556,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"406b7ad3-26d6-4b1b-9ad7-fff68622b149\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612556,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34} {\"correlation_id\":\"406b7ad3-26d6-4b1b-9ad7-fff68622b149\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612555,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34}} {\"correlation_id\":\"c15b7703-f17b-48e7-bf38-122448d79345\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612555} {\"correlation_id\":\"c15b7703-f17b-48e7-bf38-122448d79345\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612555,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"c15b7703-f17b-48e7-bf38-122448d79345\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612555,\"participants\":[{\"id\":999768,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999769,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"c15b7703-f17b-48e7-bf38-122448d79345\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"c15b7703-f17b-48e7-bf38-122448d79345\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"c15b7703-f17b-48e7-bf38-122448d79345\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"c15b7703-f17b-48e7-bf38-122448d79345\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"c15b7703-f17b-48e7-bf38-122448d79345\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612555,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"c15b7703-f17b-48e7-bf38-122448d79345\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"c15b7703-f17b-48e7-bf38-122448d79345\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612555,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"c15b7703-f17b-48e7-bf38-122448d79345\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612555} {\"correlation_id\":\"c15b7703-f17b-48e7-bf38-122448d79345\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612555,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"c15b7703-f17b-48e7-bf38-122448d79345\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612555,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34} {\"correlation_id\":\"c15b7703-f17b-48e7-bf38-122448d79345\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612554,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34}} {\"correlation_id\":\"c9cce71b-d96d-4117-b9fb-bb9672ae7c2b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612554} {\"correlation_id\":\"c9cce71b-d96d-4117-b9fb-bb9672ae7c2b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612554,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"c9cce71b-d96d-4117-b9fb-bb9672ae7c2b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612554,\"participants\":[{\"id\":999766,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999767,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"c9cce71b-d96d-4117-b9fb-bb9672ae7c2b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"c9cce71b-d96d-4117-b9fb-bb9672ae7c2b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"c9cce71b-d96d-4117-b9fb-bb9672ae7c2b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"c9cce71b-d96d-4117-b9fb-bb9672ae7c2b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"c9cce71b-d96d-4117-b9fb-bb9672ae7c2b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612554,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"c9cce71b-d96d-4117-b9fb-bb9672ae7c2b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"c9cce71b-d96d-4117-b9fb-bb9672ae7c2b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612554,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"c9cce71b-d96d-4117-b9fb-bb9672ae7c2b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612554} {\"correlation_id\":\"c9cce71b-d96d-4117-b9fb-bb9672ae7c2b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612554,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"c9cce71b-d96d-4117-b9fb-bb9672ae7c2b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612554,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34} {\"correlation_id\":\"c9cce71b-d96d-4117-b9fb-bb9672ae7c2b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612553,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34}} {\"correlation_id\":\"ffd2857e-be14-4ab1-8533-93b20116db02\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612553} {\"correlation_id\":\"ffd2857e-be14-4ab1-8533-93b20116db02\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612553,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ffd2857e-be14-4ab1-8533-93b20116db02\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612553,\"participants\":[{\"id\":999764,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999765,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"ffd2857e-be14-4ab1-8533-93b20116db02\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ffd2857e-be14-4ab1-8533-93b20116db02\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ffd2857e-be14-4ab1-8533-93b20116db02\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ffd2857e-be14-4ab1-8533-93b20116db02\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ffd2857e-be14-4ab1-8533-93b20116db02\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612553,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"ffd2857e-be14-4ab1-8533-93b20116db02\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"ffd2857e-be14-4ab1-8533-93b20116db02\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612553,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"ffd2857e-be14-4ab1-8533-93b20116db02\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612553} {\"correlation_id\":\"ffd2857e-be14-4ab1-8533-93b20116db02\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612553,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ffd2857e-be14-4ab1-8533-93b20116db02\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612553,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34} {\"correlation_id\":\"ffd2857e-be14-4ab1-8533-93b20116db02\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612552,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34}} {\"correlation_id\":\"7942c5ee-3b2d-4f76-8728-d5343cd7b02e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612552} {\"correlation_id\":\"7942c5ee-3b2d-4f76-8728-d5343cd7b02e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612552,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7942c5ee-3b2d-4f76-8728-d5343cd7b02e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612552,\"participants\":[{\"id\":999762,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999763,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"7942c5ee-3b2d-4f76-8728-d5343cd7b02e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7942c5ee-3b2d-4f76-8728-d5343cd7b02e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7942c5ee-3b2d-4f76-8728-d5343cd7b02e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7942c5ee-3b2d-4f76-8728-d5343cd7b02e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"7942c5ee-3b2d-4f76-8728-d5343cd7b02e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612552,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"7942c5ee-3b2d-4f76-8728-d5343cd7b02e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"7942c5ee-3b2d-4f76-8728-d5343cd7b02e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612552,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"7942c5ee-3b2d-4f76-8728-d5343cd7b02e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612552} {\"correlation_id\":\"7942c5ee-3b2d-4f76-8728-d5343cd7b02e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612552,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7942c5ee-3b2d-4f76-8728-d5343cd7b02e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612552,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34} {\"correlation_id\":\"7942c5ee-3b2d-4f76-8728-d5343cd7b02e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612551,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34}} {\"correlation_id\":\"8068bb0d-ab6d-48ee-abe2-d6cd116aba26\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612551} {\"correlation_id\":\"8068bb0d-ab6d-48ee-abe2-d6cd116aba26\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612551,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8068bb0d-ab6d-48ee-abe2-d6cd116aba26\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612551,\"participants\":[{\"id\":999760,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999761,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"8068bb0d-ab6d-48ee-abe2-d6cd116aba26\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8068bb0d-ab6d-48ee-abe2-d6cd116aba26\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8068bb0d-ab6d-48ee-abe2-d6cd116aba26\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"8068bb0d-ab6d-48ee-abe2-d6cd116aba26\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"8068bb0d-ab6d-48ee-abe2-d6cd116aba26\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612551,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"8068bb0d-ab6d-48ee-abe2-d6cd116aba26\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"8068bb0d-ab6d-48ee-abe2-d6cd116aba26\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612551,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"8068bb0d-ab6d-48ee-abe2-d6cd116aba26\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612551} {\"correlation_id\":\"8068bb0d-ab6d-48ee-abe2-d6cd116aba26\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612551,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8068bb0d-ab6d-48ee-abe2-d6cd116aba26\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612551,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34} {\"correlation_id\":\"8068bb0d-ab6d-48ee-abe2-d6cd116aba26\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:37] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612550,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34}} {\"correlation_id\":\"36bdbff9-cfb6-43af-b7c4-f2caafa8e794\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:37] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612550} {\"correlation_id\":\"36bdbff9-cfb6-43af-b7c4-f2caafa8e794\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:37] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612550,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"36bdbff9-cfb6-43af-b7c4-f2caafa8e794\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:37] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612550,\"participants\":[{\"id\":999758,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999759,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"36bdbff9-cfb6-43af-b7c4-f2caafa8e794\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:37] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"36bdbff9-cfb6-43af-b7c4-f2caafa8e794\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:37] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"36bdbff9-cfb6-43af-b7c4-f2caafa8e794\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:37] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"36bdbff9-cfb6-43af-b7c4-f2caafa8e794\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:37] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"36bdbff9-cfb6-43af-b7c4-f2caafa8e794\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:37] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612550,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"36bdbff9-cfb6-43af-b7c4-f2caafa8e794\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:37] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"36bdbff9-cfb6-43af-b7c4-f2caafa8e794\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:37] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612550,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"36bdbff9-cfb6-43af-b7c4-f2caafa8e794\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:38] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612550} {\"correlation_id\":\"36bdbff9-cfb6-43af-b7c4-f2caafa8e794\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:38] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612550,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"36bdbff9-cfb6-43af-b7c4-f2caafa8e794\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:38] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612550,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34} {\"correlation_id\":\"36bdbff9-cfb6-43af-b7c4-f2caafa8e794\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:38] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612549,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34}} {\"correlation_id\":\"c2ff3c6c-7380-4c1c-a1f5-50044a473ac8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:38] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612549} {\"correlation_id\":\"c2ff3c6c-7380-4c1c-a1f5-50044a473ac8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:38] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612549,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"c2ff3c6c-7380-4c1c-a1f5-50044a473ac8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:38] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612549,\"participants\":[{\"id\":999756,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999757,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"c2ff3c6c-7380-4c1c-a1f5-50044a473ac8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:39] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"c2ff3c6c-7380-4c1c-a1f5-50044a473ac8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:39] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"c2ff3c6c-7380-4c1c-a1f5-50044a473ac8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:39] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"c2ff3c6c-7380-4c1c-a1f5-50044a473ac8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"c2ff3c6c-7380-4c1c-a1f5-50044a473ac8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:39] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612549,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"c2ff3c6c-7380-4c1c-a1f5-50044a473ac8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:39] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"c2ff3c6c-7380-4c1c-a1f5-50044a473ac8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:39] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612549,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"c2ff3c6c-7380-4c1c-a1f5-50044a473ac8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:39] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612549} {\"correlation_id\":\"c2ff3c6c-7380-4c1c-a1f5-50044a473ac8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612549,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"c2ff3c6c-7380-4c1c-a1f5-50044a473ac8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:39] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612549,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34} {\"correlation_id\":\"c2ff3c6c-7380-4c1c-a1f5-50044a473ac8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:40] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612365,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"a9faea34-163e-4d2a-8007-c903951e3b79\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612365} {\"correlation_id\":\"a9faea34-163e-4d2a-8007-c903951e3b79\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612365,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a9faea34-163e-4d2a-8007-c903951e3b79\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:40] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612365,\"participants\":[{\"id\":999563,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999564,\"user_id\":206,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"a9faea34-163e-4d2a-8007-c903951e3b79\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a9faea34-163e-4d2a-8007-c903951e3b79\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a9faea34-163e-4d2a-8007-c903951e3b79\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"a9faea34-163e-4d2a-8007-c903951e3b79\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"a9faea34-163e-4d2a-8007-c903951e3b79\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"a9faea34-163e-4d2a-8007-c903951e3b79\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:40] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612365,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"a9faea34-163e-4d2a-8007-c903951e3b79\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612365,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"a9faea34-163e-4d2a-8007-c903951e3b79\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612365} {\"correlation_id\":\"a9faea34-163e-4d2a-8007-c903951e3b79\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612365,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a9faea34-163e-4d2a-8007-c903951e3b79\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:41] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612365,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"a9faea34-163e-4d2a-8007-c903951e3b79\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}","depth":4,"on_screen":true,"value":"[2026-05-11 11:08:45] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"43b1fb67-9aac-4fc6-9ced-689ecda5c548\",\"trace_id\":\"60028d0e-dcd8-496a-a7ba-3a04b8d646e2\"}\n[2026-05-11 11:08:45] local.INFO: [Commands/AsyncUpdateEsEntities] Starting ES update worker {\"pid\":72650,\"workerId\":\"\",\"target\":\"activities\"} {\"correlation_id\":\"6d49ffdc-2ed7-4eae-a1ee-e25ca95bbea8\",\"trace_id\":\"906573b5-005c-4820-8a32-3b0703ea86dd\"}\n[2026-05-11 11:08:46] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"43b1fb67-9aac-4fc6-9ced-689ecda5c548\",\"trace_id\":\"60028d0e-dcd8-496a-a7ba-3a04b8d646e2\"}\n[2026-05-11 11:09:12] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":615092,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"correlation_id\":\"f33d47cb-76c6-4c27-a641-48cbf69e623d\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:12] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":615092} {\"correlation_id\":\"f33d47cb-76c6-4c27-a641-48cbf69e623d\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:12] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":615092,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"f33d47cb-76c6-4c27-a641-48cbf69e623d\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:12] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":615092,\"participants\":[{\"id\":1004102,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":1004103,\"user_id\":89,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"f33d47cb-76c6-4c27-a641-48cbf69e623d\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:12] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f33d47cb-76c6-4c27-a641-48cbf69e623d\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:12] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f33d47cb-76c6-4c27-a641-48cbf69e623d\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:12] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"f33d47cb-76c6-4c27-a641-48cbf69e623d\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:12] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"f33d47cb-76c6-4c27-a641-48cbf69e623d\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:12] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"f33d47cb-76c6-4c27-a641-48cbf69e623d\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:13] local.INFO: [Hubspot] Failed to fetch contact {\"email\":\"nikolay.nikolov@jiminny.com\",\"reason\":\"[404] Client error: `GET https://api.hubapi.com/crm/v3/objects/contacts/nikolay.nikolov%40jiminny.com?properties=email%2Cfirstname%2Clastname%2Ccountry%2Cphone%2Cmobilephone%2Cjobtitle%2Chubspot_owner_id%2Cassociatedcompanyid%2Cphoto&archived=0&idProperty=email` resulted in a `404 Not Found` response\"} {\"correlation_id\":\"f33d47cb-76c6-4c27-a641-48cbf69e623d\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:13] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"f33d47cb-76c6-4c27-a641-48cbf69e623d\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:13] local.WARNING: [Hubspot] No retry-after header or known message, using default {\"exception_class\":\"SevenShores\\\\Hubspot\\\\Exceptions\\\\BadRequest\",\"message\":\"\"} {\"correlation_id\":\"f33d47cb-76c6-4c27-a641-48cbf69e623d\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:13] local.WARNING: [Hubspot] Received 429 from API {\"team_id\":2,\"config_id\":2,\"retry_after\":10,\"message\":\"\",\"reason\":\"Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response:\n{\\\"status\\\":\\\"error\\\",\\\"message\\\":\\\"You have reached your secondly limit.\\\",\\\"errorType\\\":\\\"RATE_LIMIT\\\",\\\"correlationId\\\":\\\"019e16ba-1 (truncated...)\n\"} {\"correlation_id\":\"f33d47cb-76c6-4c27-a641-48cbf69e623d\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:13] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":10,\"delay\":12} {\"correlation_id\":\"f33d47cb-76c6-4c27-a641-48cbf69e623d\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":614436,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"correlation_id\":\"ccafe863-7885-4971-96fb-87ef6dd4adf3\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614436} {\"correlation_id\":\"ccafe863-7885-4971-96fb-87ef6dd4adf3\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614436,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ccafe863-7885-4971-96fb-87ef6dd4adf3\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":614436,\"participants\":[{\"id\":1002751,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":1002752,\"user_id\":89,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"ccafe863-7885-4971-96fb-87ef6dd4adf3\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ccafe863-7885-4971-96fb-87ef6dd4adf3\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ccafe863-7885-4971-96fb-87ef6dd4adf3\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ccafe863-7885-4971-96fb-87ef6dd4adf3\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ccafe863-7885-4971-96fb-87ef6dd4adf3\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"ccafe863-7885-4971-96fb-87ef6dd4adf3\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"ccafe863-7885-4971-96fb-87ef6dd4adf3\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":10,\"delay\":10} {\"correlation_id\":\"ccafe863-7885-4971-96fb-87ef6dd4adf3\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":614382,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"correlation_id\":\"f00a4506-adfe-4fdc-b932-e6d2bc751fde\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614382} {\"correlation_id\":\"f00a4506-adfe-4fdc-b932-e6d2bc751fde\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614382,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"f00a4506-adfe-4fdc-b932-e6d2bc751fde\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":614382,\"participants\":[{\"id\":1002632,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":1002633,\"user_id\":89,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"f00a4506-adfe-4fdc-b932-e6d2bc751fde\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f00a4506-adfe-4fdc-b932-e6d2bc751fde\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f00a4506-adfe-4fdc-b932-e6d2bc751fde\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"f00a4506-adfe-4fdc-b932-e6d2bc751fde\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"f00a4506-adfe-4fdc-b932-e6d2bc751fde\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"f00a4506-adfe-4fdc-b932-e6d2bc751fde\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"f00a4506-adfe-4fdc-b932-e6d2bc751fde\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":10,\"delay\":12} {\"correlation_id\":\"f00a4506-adfe-4fdc-b932-e6d2bc751fde\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":614381,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"correlation_id\":\"36bd73f5-17f9-4f70-8254-2214543c7f8e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614381} {\"correlation_id\":\"36bd73f5-17f9-4f70-8254-2214543c7f8e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614381,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"36bd73f5-17f9-4f70-8254-2214543c7f8e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":614381,\"participants\":[{\"id\":1002630,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":1002631,\"user_id\":89,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"36bd73f5-17f9-4f70-8254-2214543c7f8e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"36bd73f5-17f9-4f70-8254-2214543c7f8e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"36bd73f5-17f9-4f70-8254-2214543c7f8e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"36bd73f5-17f9-4f70-8254-2214543c7f8e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"36bd73f5-17f9-4f70-8254-2214543c7f8e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"36bd73f5-17f9-4f70-8254-2214543c7f8e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"36bd73f5-17f9-4f70-8254-2214543c7f8e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":10,\"delay\":10} {\"correlation_id\":\"36bd73f5-17f9-4f70-8254-2214543c7f8e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":614378,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":6167,\"account_id\":null,\"opportunity_id\":null,\"stage_id\":null}} {\"correlation_id\":\"a4a3a058-ec22-4f04-bb14-a9bff18ce214\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614378} {\"correlation_id\":\"a4a3a058-ec22-4f04-bb14-a9bff18ce214\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614378,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a4a3a058-ec22-4f04-bb14-a9bff18ce214\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":614378,\"participants\":[{\"id\":1002623,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":1002624,\"user_id\":null,\"contact_id\":6167,\"lead_id\":null},{\"id\":1002625,\"user_id\":89,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"a4a3a058-ec22-4f04-bb14-a9bff18ce214\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a4a3a058-ec22-4f04-bb14-a9bff18ce214\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a4a3a058-ec22-4f04-bb14-a9bff18ce214\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"a4a3a058-ec22-4f04-bb14-a9bff18ce214\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"a4a3a058-ec22-4f04-bb14-a9bff18ce214\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"a4a3a058-ec22-4f04-bb14-a9bff18ce214\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"a4a3a058-ec22-4f04-bb14-a9bff18ce214\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":10,\"delay\":12} {\"correlation_id\":\"a4a3a058-ec22-4f04-bb14-a9bff18ce214\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613840,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613840} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613840,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613840,\"participants\":[{\"id\":1001764,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1001765,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":261} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":299} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613840,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613840,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613840} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613840,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613840,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"d86caa21-8980-460b-b2be-88292956cdb3\",\"trace_id\":\"6f80ed90-fa59-444e-a016-33a62019c6a4\"}\n[2026-05-11 11:09:15] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613833,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"ed230e3b-8ded-4591-bfe7-d4ead6f411c1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613833} {\"correlation_id\":\"ed230e3b-8ded-4591-bfe7-d4ead6f411c1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613833,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ed230e3b-8ded-4591-bfe7-d4ead6f411c1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613833,\"participants\":[{\"id\":1001750,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1001751,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"ed230e3b-8ded-4591-bfe7-d4ead6f411c1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"d86caa21-8980-460b-b2be-88292956cdb3\",\"trace_id\":\"6f80ed90-fa59-444e-a016-33a62019c6a4\"}\n[2026-05-11 11:09:15] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"d86caa21-8980-460b-b2be-88292956cdb3\",\"trace_id\":\"6f80ed90-fa59-444e-a016-33a62019c6a4\"}\n[2026-05-11 11:09:15] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ed230e3b-8ded-4591-bfe7-d4ead6f411c1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ed230e3b-8ded-4591-bfe7-d4ead6f411c1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ed230e3b-8ded-4591-bfe7-d4ead6f411c1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ed230e3b-8ded-4591-bfe7-d4ead6f411c1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"ed230e3b-8ded-4591-bfe7-d4ead6f411c1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613833,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"ed230e3b-8ded-4591-bfe7-d4ead6f411c1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613833,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"ed230e3b-8ded-4591-bfe7-d4ead6f411c1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613833} {\"correlation_id\":\"ed230e3b-8ded-4591-bfe7-d4ead6f411c1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613833,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ed230e3b-8ded-4591-bfe7-d4ead6f411c1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613833,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"ed230e3b-8ded-4591-bfe7-d4ead6f411c1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613827,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"d165f8f2-23f6-4f9a-90e7-7b600066818c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613827} {\"correlation_id\":\"d165f8f2-23f6-4f9a-90e7-7b600066818c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613827,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d165f8f2-23f6-4f9a-90e7-7b600066818c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613827,\"participants\":[{\"id\":1001734,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1001735,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"d165f8f2-23f6-4f9a-90e7-7b600066818c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d165f8f2-23f6-4f9a-90e7-7b600066818c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d165f8f2-23f6-4f9a-90e7-7b600066818c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"d165f8f2-23f6-4f9a-90e7-7b600066818c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"d165f8f2-23f6-4f9a-90e7-7b600066818c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"d165f8f2-23f6-4f9a-90e7-7b600066818c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613827,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"d165f8f2-23f6-4f9a-90e7-7b600066818c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613827,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"d165f8f2-23f6-4f9a-90e7-7b600066818c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613827} {\"correlation_id\":\"d165f8f2-23f6-4f9a-90e7-7b600066818c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613827,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d165f8f2-23f6-4f9a-90e7-7b600066818c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613827,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"d165f8f2-23f6-4f9a-90e7-7b600066818c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613826,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"1816f96e-c36b-474a-8f46-bc8c71bb0079\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613826} {\"correlation_id\":\"1816f96e-c36b-474a-8f46-bc8c71bb0079\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613826,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1816f96e-c36b-474a-8f46-bc8c71bb0079\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613826,\"participants\":[{\"id\":1001732,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1001733,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"1816f96e-c36b-474a-8f46-bc8c71bb0079\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1816f96e-c36b-474a-8f46-bc8c71bb0079\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1816f96e-c36b-474a-8f46-bc8c71bb0079\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1816f96e-c36b-474a-8f46-bc8c71bb0079\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1816f96e-c36b-474a-8f46-bc8c71bb0079\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"1816f96e-c36b-474a-8f46-bc8c71bb0079\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613826,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"1816f96e-c36b-474a-8f46-bc8c71bb0079\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613826,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"1816f96e-c36b-474a-8f46-bc8c71bb0079\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613826} {\"correlation_id\":\"1816f96e-c36b-474a-8f46-bc8c71bb0079\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613826,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1816f96e-c36b-474a-8f46-bc8c71bb0079\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613826,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"1816f96e-c36b-474a-8f46-bc8c71bb0079\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613820,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"a2b1cf94-6665-4574-a821-fcd845d290dc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613820} {\"correlation_id\":\"a2b1cf94-6665-4574-a821-fcd845d290dc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613820,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a2b1cf94-6665-4574-a821-fcd845d290dc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613820,\"participants\":[{\"id\":1001721,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1001722,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"a2b1cf94-6665-4574-a821-fcd845d290dc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a2b1cf94-6665-4574-a821-fcd845d290dc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a2b1cf94-6665-4574-a821-fcd845d290dc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"a2b1cf94-6665-4574-a821-fcd845d290dc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"a2b1cf94-6665-4574-a821-fcd845d290dc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"a2b1cf94-6665-4574-a821-fcd845d290dc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613820,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"a2b1cf94-6665-4574-a821-fcd845d290dc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613820,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"a2b1cf94-6665-4574-a821-fcd845d290dc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613820} {\"correlation_id\":\"a2b1cf94-6665-4574-a821-fcd845d290dc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613820,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a2b1cf94-6665-4574-a821-fcd845d290dc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613820,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"a2b1cf94-6665-4574-a821-fcd845d290dc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613818,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"7194ba37-7af3-4aa0-80a3-14b38431fd39\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613818} {\"correlation_id\":\"7194ba37-7af3-4aa0-80a3-14b38431fd39\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613818,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7194ba37-7af3-4aa0-80a3-14b38431fd39\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613818,\"participants\":[{\"id\":1001717,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1001718,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"7194ba37-7af3-4aa0-80a3-14b38431fd39\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7194ba37-7af3-4aa0-80a3-14b38431fd39\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7194ba37-7af3-4aa0-80a3-14b38431fd39\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7194ba37-7af3-4aa0-80a3-14b38431fd39\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"7194ba37-7af3-4aa0-80a3-14b38431fd39\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"7194ba37-7af3-4aa0-80a3-14b38431fd39\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613818,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"7194ba37-7af3-4aa0-80a3-14b38431fd39\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613818,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"7194ba37-7af3-4aa0-80a3-14b38431fd39\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613818} {\"correlation_id\":\"7194ba37-7af3-4aa0-80a3-14b38431fd39\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613818,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7194ba37-7af3-4aa0-80a3-14b38431fd39\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613818,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"7194ba37-7af3-4aa0-80a3-14b38431fd39\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613812,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"1fe899e0-6ad7-4159-b5f9-6f34b32d31d6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613812} {\"correlation_id\":\"1fe899e0-6ad7-4159-b5f9-6f34b32d31d6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613812,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1fe899e0-6ad7-4159-b5f9-6f34b32d31d6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613812,\"participants\":[{\"id\":1001705,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1001706,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"1fe899e0-6ad7-4159-b5f9-6f34b32d31d6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1fe899e0-6ad7-4159-b5f9-6f34b32d31d6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1fe899e0-6ad7-4159-b5f9-6f34b32d31d6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1fe899e0-6ad7-4159-b5f9-6f34b32d31d6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1fe899e0-6ad7-4159-b5f9-6f34b32d31d6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"1fe899e0-6ad7-4159-b5f9-6f34b32d31d6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613812,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"1fe899e0-6ad7-4159-b5f9-6f34b32d31d6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613812,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"1fe899e0-6ad7-4159-b5f9-6f34b32d31d6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613812} {\"correlation_id\":\"1fe899e0-6ad7-4159-b5f9-6f34b32d31d6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613812,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1fe899e0-6ad7-4159-b5f9-6f34b32d31d6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613812,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"1fe899e0-6ad7-4159-b5f9-6f34b32d31d6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613807,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4484,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613807} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613807,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613807,\"participants\":[{\"id\":1001690,\"user_id\":253,\"contact_id\":null,\"lead_id\":null},{\"id\":1001691,\"user_id\":null,\"contact_id\":4484,\"lead_id\":null}]} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613807,\"team_id\":2,\"email\":\"preslava.ivanova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":243,\"contact_id\":4484,\"owner_id\":253} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":243,\"contact_id\":4484} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":243,\"contact_id\":4484,\"opportunity_id\":276} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":1.06,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"6d49ffdc-2ed7-4eae-a1ee-e25ca95bbea8\",\"trace_id\":\"906573b5-005c-4820-8a32-3b0703ea86dd\"}\n[2026-05-11 11:09:17] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"tsvetomir.banovski@gmail.com\"} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613807,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613807} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613807,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613807,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4484,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613806,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34}} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613806} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613806,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613806,\"participants\":[{\"id\":1001688,\"user_id\":253,\"contact_id\":null,\"lead_id\":null},{\"id\":1001689,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null}]} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613806,\"team_id\":2,\"email\":\"preslava.ivanova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":253} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":244,\"contact_id\":4487} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":350} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613806,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613806} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613806,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613806,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613805,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34}} {\"correlation_id\":\"e6a724a6-dc6e-4440-ab48-641336d6ca17\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613805} {\"correlation_id\":\"e6a724a6-dc6e-4440-ab48-641336d6ca17\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613805,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e6a724a6-dc6e-4440-ab48-641336d6ca17\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613805,\"participants\":[{\"id\":1001686,\"user_id\":253,\"contact_id\":null,\"lead_id\":null},{\"id\":1001687,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null}]} {\"correlation_id\":\"e6a724a6-dc6e-4440-ab48-641336d6ca17\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e6a724a6-dc6e-4440-ab48-641336d6ca17\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e6a724a6-dc6e-4440-ab48-641336d6ca17\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"e6a724a6-dc6e-4440-ab48-641336d6ca17\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"e6a724a6-dc6e-4440-ab48-641336d6ca17\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613805,\"team_id\":2,\"email\":\"preslava.ivanova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"e6a724a6-dc6e-4440-ab48-641336d6ca17\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"e6a724a6-dc6e-4440-ab48-641336d6ca17\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613805,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"e6a724a6-dc6e-4440-ab48-641336d6ca17\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613805} {\"correlation_id\":\"e6a724a6-dc6e-4440-ab48-641336d6ca17\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613805,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e6a724a6-dc6e-4440-ab48-641336d6ca17\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613805,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34} {\"correlation_id\":\"e6a724a6-dc6e-4440-ab48-641336d6ca17\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613698,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"67158d25-23dc-4314-8813-caa3c43fa3f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613698} {\"correlation_id\":\"67158d25-23dc-4314-8813-caa3c43fa3f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613698,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"67158d25-23dc-4314-8813-caa3c43fa3f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613698,\"participants\":[{\"id\":1001667,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1001668,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"67158d25-23dc-4314-8813-caa3c43fa3f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"67158d25-23dc-4314-8813-caa3c43fa3f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"67158d25-23dc-4314-8813-caa3c43fa3f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"67158d25-23dc-4314-8813-caa3c43fa3f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"67158d25-23dc-4314-8813-caa3c43fa3f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"67158d25-23dc-4314-8813-caa3c43fa3f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613698,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"67158d25-23dc-4314-8813-caa3c43fa3f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613698,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"67158d25-23dc-4314-8813-caa3c43fa3f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613698} {\"correlation_id\":\"67158d25-23dc-4314-8813-caa3c43fa3f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613698,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"67158d25-23dc-4314-8813-caa3c43fa3f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613698,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"67158d25-23dc-4314-8813-caa3c43fa3f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613697,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"8d2a290e-88e6-494a-91c2-f63f0338f30f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613697} {\"correlation_id\":\"8d2a290e-88e6-494a-91c2-f63f0338f30f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613697,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8d2a290e-88e6-494a-91c2-f63f0338f30f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613697,\"participants\":[{\"id\":1001665,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1001666,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"8d2a290e-88e6-494a-91c2-f63f0338f30f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8d2a290e-88e6-494a-91c2-f63f0338f30f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8d2a290e-88e6-494a-91c2-f63f0338f30f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"8d2a290e-88e6-494a-91c2-f63f0338f30f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"8d2a290e-88e6-494a-91c2-f63f0338f30f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"8d2a290e-88e6-494a-91c2-f63f0338f30f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613697,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"8d2a290e-88e6-494a-91c2-f63f0338f30f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613697,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"8d2a290e-88e6-494a-91c2-f63f0338f30f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613697} {\"correlation_id\":\"8d2a290e-88e6-494a-91c2-f63f0338f30f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613697,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8d2a290e-88e6-494a-91c2-f63f0338f30f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613697,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"8d2a290e-88e6-494a-91c2-f63f0338f30f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613696,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"d1c50e93-0488-4315-a739-f89181b77d87\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613696} {\"correlation_id\":\"d1c50e93-0488-4315-a739-f89181b77d87\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613696,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d1c50e93-0488-4315-a739-f89181b77d87\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613696,\"participants\":[{\"id\":1001663,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1001664,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"d1c50e93-0488-4315-a739-f89181b77d87\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d1c50e93-0488-4315-a739-f89181b77d87\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d1c50e93-0488-4315-a739-f89181b77d87\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"d1c50e93-0488-4315-a739-f89181b77d87\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"d1c50e93-0488-4315-a739-f89181b77d87\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"d1c50e93-0488-4315-a739-f89181b77d87\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613696,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"d1c50e93-0488-4315-a739-f89181b77d87\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613696,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"d1c50e93-0488-4315-a739-f89181b77d87\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613696} {\"correlation_id\":\"d1c50e93-0488-4315-a739-f89181b77d87\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613696,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d1c50e93-0488-4315-a739-f89181b77d87\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613696,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"d1c50e93-0488-4315-a739-f89181b77d87\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613695,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"6dbd1e2c-b89e-47b6-9c2f-d9d7a56b5383\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613695} {\"correlation_id\":\"6dbd1e2c-b89e-47b6-9c2f-d9d7a56b5383\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613695,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"6dbd1e2c-b89e-47b6-9c2f-d9d7a56b5383\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613695,\"participants\":[{\"id\":1001661,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1001662,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"6dbd1e2c-b89e-47b6-9c2f-d9d7a56b5383\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"6dbd1e2c-b89e-47b6-9c2f-d9d7a56b5383\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"6dbd1e2c-b89e-47b6-9c2f-d9d7a56b5383\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"6dbd1e2c-b89e-47b6-9c2f-d9d7a56b5383\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"6dbd1e2c-b89e-47b6-9c2f-d9d7a56b5383\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"6dbd1e2c-b89e-47b6-9c2f-d9d7a56b5383\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613695,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"6dbd1e2c-b89e-47b6-9c2f-d9d7a56b5383\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613695,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"6dbd1e2c-b89e-47b6-9c2f-d9d7a56b5383\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613695} {\"correlation_id\":\"6dbd1e2c-b89e-47b6-9c2f-d9d7a56b5383\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613695,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"6dbd1e2c-b89e-47b6-9c2f-d9d7a56b5383\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613695,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"6dbd1e2c-b89e-47b6-9c2f-d9d7a56b5383\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613694,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"cd14d297-e2e1-425f-b745-361ca50df005\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613694} {\"correlation_id\":\"cd14d297-e2e1-425f-b745-361ca50df005\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613694,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cd14d297-e2e1-425f-b745-361ca50df005\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613694,\"participants\":[{\"id\":1001659,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1001660,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"cd14d297-e2e1-425f-b745-361ca50df005\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cd14d297-e2e1-425f-b745-361ca50df005\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cd14d297-e2e1-425f-b745-361ca50df005\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cd14d297-e2e1-425f-b745-361ca50df005\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"cd14d297-e2e1-425f-b745-361ca50df005\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"cd14d297-e2e1-425f-b745-361ca50df005\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613694,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"cd14d297-e2e1-425f-b745-361ca50df005\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613694,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"cd14d297-e2e1-425f-b745-361ca50df005\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613694} {\"correlation_id\":\"cd14d297-e2e1-425f-b745-361ca50df005\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613694,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cd14d297-e2e1-425f-b745-361ca50df005\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613694,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"cd14d297-e2e1-425f-b745-361ca50df005\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613157,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34}} {\"correlation_id\":\"ed6d3fa0-08c4-412f-b60d-4582c6dfa704\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613157} {\"correlation_id\":\"ed6d3fa0-08c4-412f-b60d-4582c6dfa704\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613157,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ed6d3fa0-08c4-412f-b60d-4582c6dfa704\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613157,\"participants\":[{\"id\":1000746,\"user_id\":253,\"contact_id\":null,\"lead_id\":null},{\"id\":1000747,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null}]} {\"correlation_id\":\"ed6d3fa0-08c4-412f-b60d-4582c6dfa704\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ed6d3fa0-08c4-412f-b60d-4582c6dfa704\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ed6d3fa0-08c4-412f-b60d-4582c6dfa704\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ed6d3fa0-08c4-412f-b60d-4582c6dfa704\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ed6d3fa0-08c4-412f-b60d-4582c6dfa704\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613157,\"team_id\":2,\"email\":\"preslava.ivanova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"ed6d3fa0-08c4-412f-b60d-4582c6dfa704\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"ed6d3fa0-08c4-412f-b60d-4582c6dfa704\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613157,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"ed6d3fa0-08c4-412f-b60d-4582c6dfa704\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613157} {\"correlation_id\":\"ed6d3fa0-08c4-412f-b60d-4582c6dfa704\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613157,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ed6d3fa0-08c4-412f-b60d-4582c6dfa704\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613157,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34} {\"correlation_id\":\"ed6d3fa0-08c4-412f-b60d-4582c6dfa704\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613156,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34}} {\"correlation_id\":\"77af6469-661f-4d4b-b741-a5b059c8b181\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613156} {\"correlation_id\":\"77af6469-661f-4d4b-b741-a5b059c8b181\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613156,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"77af6469-661f-4d4b-b741-a5b059c8b181\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613156,\"participants\":[{\"id\":1000744,\"user_id\":253,\"contact_id\":null,\"lead_id\":null},{\"id\":1000745,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null}]} {\"correlation_id\":\"77af6469-661f-4d4b-b741-a5b059c8b181\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"77af6469-661f-4d4b-b741-a5b059c8b181\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"77af6469-661f-4d4b-b741-a5b059c8b181\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"77af6469-661f-4d4b-b741-a5b059c8b181\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"77af6469-661f-4d4b-b741-a5b059c8b181\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613156,\"team_id\":2,\"email\":\"preslava.ivanova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"77af6469-661f-4d4b-b741-a5b059c8b181\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"77af6469-661f-4d4b-b741-a5b059c8b181\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613156,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"77af6469-661f-4d4b-b741-a5b059c8b181\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613156} {\"correlation_id\":\"77af6469-661f-4d4b-b741-a5b059c8b181\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613156,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"77af6469-661f-4d4b-b741-a5b059c8b181\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613156,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34} {\"correlation_id\":\"77af6469-661f-4d4b-b741-a5b059c8b181\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613155,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34}} {\"correlation_id\":\"6cd64b7d-2826-41b3-83e4-000c5cd88462\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613155} {\"correlation_id\":\"6cd64b7d-2826-41b3-83e4-000c5cd88462\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613155,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"6cd64b7d-2826-41b3-83e4-000c5cd88462\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613155,\"participants\":[{\"id\":1000742,\"user_id\":253,\"contact_id\":null,\"lead_id\":null},{\"id\":1000743,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null}]} {\"correlation_id\":\"6cd64b7d-2826-41b3-83e4-000c5cd88462\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"6cd64b7d-2826-41b3-83e4-000c5cd88462\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"6cd64b7d-2826-41b3-83e4-000c5cd88462\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"6cd64b7d-2826-41b3-83e4-000c5cd88462\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"6cd64b7d-2826-41b3-83e4-000c5cd88462\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613155,\"team_id\":2,\"email\":\"preslava.ivanova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"6cd64b7d-2826-41b3-83e4-000c5cd88462\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"6cd64b7d-2826-41b3-83e4-000c5cd88462\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613155,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"6cd64b7d-2826-41b3-83e4-000c5cd88462\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613155} {\"correlation_id\":\"6cd64b7d-2826-41b3-83e4-000c5cd88462\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613155,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"6cd64b7d-2826-41b3-83e4-000c5cd88462\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613155,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34} {\"correlation_id\":\"6cd64b7d-2826-41b3-83e4-000c5cd88462\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613130,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"8d0dfbe8-30bd-4332-bf52-762b3a44300b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613130} {\"correlation_id\":\"8d0dfbe8-30bd-4332-bf52-762b3a44300b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613130,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8d0dfbe8-30bd-4332-bf52-762b3a44300b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613130,\"participants\":[{\"id\":1000693,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1000694,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"8d0dfbe8-30bd-4332-bf52-762b3a44300b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8d0dfbe8-30bd-4332-bf52-762b3a44300b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8d0dfbe8-30bd-4332-bf52-762b3a44300b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"8d0dfbe8-30bd-4332-bf52-762b3a44300b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"8d0dfbe8-30bd-4332-bf52-762b3a44300b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"8d0dfbe8-30bd-4332-bf52-762b3a44300b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613130,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"8d0dfbe8-30bd-4332-bf52-762b3a44300b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613130,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"8d0dfbe8-30bd-4332-bf52-762b3a44300b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613130} {\"correlation_id\":\"8d0dfbe8-30bd-4332-bf52-762b3a44300b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613130,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8d0dfbe8-30bd-4332-bf52-762b3a44300b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613130,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"8d0dfbe8-30bd-4332-bf52-762b3a44300b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612924,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":165,\"stage_id\":89}} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612924} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612924,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612924,\"participants\":[{\"id\":1000290,\"user_id\":19,\"contact_id\":null,\"lead_id\":null},{\"id\":1000291,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612924,\"team_id\":2,\"email\":\"james.graham@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":69,\"contact_id\":97,\"owner_id\":19} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":69,\"contact_id\":97,\"opportunity_id\":165} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612924,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612924} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612924,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612924,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":165,\"stage_id\":89} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:23] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612923,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":165,\"stage_id\":89}} {\"correlation_id\":\"773e5722-a5c7-48ec-b0d8-11b3aa2aa37a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:23] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612923} {\"correlation_id\":\"773e5722-a5c7-48ec-b0d8-11b3aa2aa37a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:23] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612923,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"773e5722-a5c7-48ec-b0d8-11b3aa2aa37a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:23] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612923,\"participants\":[{\"id\":1000288,\"user_id\":19,\"contact_id\":null,\"lead_id\":null},{\"id\":1000289,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"773e5722-a5c7-48ec-b0d8-11b3aa2aa37a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:23] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"773e5722-a5c7-48ec-b0d8-11b3aa2aa37a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:23] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"773e5722-a5c7-48ec-b0d8-11b3aa2aa37a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:23] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"773e5722-a5c7-48ec-b0d8-11b3aa2aa37a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:23] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"773e5722-a5c7-48ec-b0d8-11b3aa2aa37a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:23] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612923,\"team_id\":2,\"email\":\"james.graham@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"773e5722-a5c7-48ec-b0d8-11b3aa2aa37a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:23] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"773e5722-a5c7-48ec-b0d8-11b3aa2aa37a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:23] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612923,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"773e5722-a5c7-48ec-b0d8-11b3aa2aa37a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:24] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612923} {\"correlation_id\":\"773e5722-a5c7-48ec-b0d8-11b3aa2aa37a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:24] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612923,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"773e5722-a5c7-48ec-b0d8-11b3aa2aa37a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:24] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612923,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":165,\"stage_id\":89} {\"correlation_id\":\"773e5722-a5c7-48ec-b0d8-11b3aa2aa37a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:24] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612922,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":165,\"stage_id\":89}} {\"correlation_id\":\"7d6f9c8c-16e0-4f84-b07d-adddfa5c739f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:24] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612922} {\"correlation_id\":\"7d6f9c8c-16e0-4f84-b07d-adddfa5c739f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:24] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612922,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7d6f9c8c-16e0-4f84-b07d-adddfa5c739f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:24] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612922,\"participants\":[{\"id\":1000286,\"user_id\":19,\"contact_id\":null,\"lead_id\":null},{\"id\":1000287,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"7d6f9c8c-16e0-4f84-b07d-adddfa5c739f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:24] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7d6f9c8c-16e0-4f84-b07d-adddfa5c739f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:24] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7d6f9c8c-16e0-4f84-b07d-adddfa5c739f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7d6f9c8c-16e0-4f84-b07d-adddfa5c739f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"7d6f9c8c-16e0-4f84-b07d-adddfa5c739f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612922,\"team_id\":2,\"email\":\"james.graham@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"7d6f9c8c-16e0-4f84-b07d-adddfa5c739f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"7d6f9c8c-16e0-4f84-b07d-adddfa5c739f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612922,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"7d6f9c8c-16e0-4f84-b07d-adddfa5c739f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612922} {\"correlation_id\":\"7d6f9c8c-16e0-4f84-b07d-adddfa5c739f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612922,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7d6f9c8c-16e0-4f84-b07d-adddfa5c739f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612922,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":165,\"stage_id\":89} {\"correlation_id\":\"7d6f9c8c-16e0-4f84-b07d-adddfa5c739f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612847,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"462c34b9-0b57-4e81-a9e2-5ce4a6900814\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612847} {\"correlation_id\":\"462c34b9-0b57-4e81-a9e2-5ce4a6900814\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612847,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"462c34b9-0b57-4e81-a9e2-5ce4a6900814\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612847,\"participants\":[{\"id\":1000130,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":1000131,\"user_id\":261,\"contact_id\":null,\"lead_id\":null},{\"id\":1000151,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null}]} {\"correlation_id\":\"462c34b9-0b57-4e81-a9e2-5ce4a6900814\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"462c34b9-0b57-4e81-a9e2-5ce4a6900814\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"462c34b9-0b57-4e81-a9e2-5ce4a6900814\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"462c34b9-0b57-4e81-a9e2-5ce4a6900814\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"462c34b9-0b57-4e81-a9e2-5ce4a6900814\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"correlation_id\":\"462c34b9-0b57-4e81-a9e2-5ce4a6900814\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"503de928-3a1a-4314-a23f-ca2625111f7f\",\"trace_id\":\"7ee54e65-014c-4ae3-821a-dc0488dc10ed\"}\n[2026-05-11 11:09:26] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"503de928-3a1a-4314-a23f-ca2625111f7f\",\"trace_id\":\"7ee54e65-014c-4ae3-821a-dc0488dc10ed\"}\n[2026-05-11 11:09:26] local.INFO: [Hubspot] Failed to fetch contact {\"email\":\"adelina.petrova@jiminny.com\",\"reason\":\"[404] Client error: `GET https://api.hubapi.com/crm/v3/objects/contacts/adelina.petrova%40jiminny.com?properties=email%2Cfirstname%2Clastname%2Ccountry%2Cphone%2Cmobilephone%2Cjobtitle%2Chubspot_owner_id%2Cassociatedcompanyid%2Cphoto&archived=0&idProperty=email` resulted in a `404 Not Found` response\"} {\"correlation_id\":\"462c34b9-0b57-4e81-a9e2-5ce4a6900814\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:26] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"correlation_id\":\"462c34b9-0b57-4e81-a9e2-5ce4a6900814\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:26] local.WARNING: [Hubspot] No retry-after header or known message, using default {\"exception_class\":\"SevenShores\\\\Hubspot\\\\Exceptions\\\\BadRequest\",\"message\":\"\"} {\"correlation_id\":\"462c34b9-0b57-4e81-a9e2-5ce4a6900814\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:26] local.WARNING: [Hubspot] Received 429 from API {\"team_id\":2,\"config_id\":2,\"retry_after\":10,\"message\":\"\",\"reason\":\"Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response:\n{\\\"status\\\":\\\"error\\\",\\\"message\\\":\\\"You have reached your secondly limit.\\\",\\\"errorType\\\":\\\"RATE_LIMIT\\\",\\\"correlationId\\\":\\\"019e16ba-4 (truncated...)\n\"} {\"correlation_id\":\"462c34b9-0b57-4e81-a9e2-5ce4a6900814\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:26] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":10,\"delay\":14} {\"correlation_id\":\"462c34b9-0b57-4e81-a9e2-5ce4a6900814\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:26] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612822,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"ca259dfb-7b24-4406-9b61-a4f28761020b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:26] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612822} {\"correlation_id\":\"ca259dfb-7b24-4406-9b61-a4f28761020b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:26] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612822,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ca259dfb-7b24-4406-9b61-a4f28761020b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:26] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612822,\"participants\":[{\"id\":1000080,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1000081,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"ca259dfb-7b24-4406-9b61-a4f28761020b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ca259dfb-7b24-4406-9b61-a4f28761020b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ca259dfb-7b24-4406-9b61-a4f28761020b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ca259dfb-7b24-4406-9b61-a4f28761020b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ca259dfb-7b24-4406-9b61-a4f28761020b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"ca259dfb-7b24-4406-9b61-a4f28761020b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612822,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"ca259dfb-7b24-4406-9b61-a4f28761020b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612822,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"ca259dfb-7b24-4406-9b61-a4f28761020b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612822} {\"correlation_id\":\"ca259dfb-7b24-4406-9b61-a4f28761020b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612822,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ca259dfb-7b24-4406-9b61-a4f28761020b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612822,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"ca259dfb-7b24-4406-9b61-a4f28761020b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612819,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"cd602b18-88a5-4ea9-afef-e52be017fc0f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612819} {\"correlation_id\":\"cd602b18-88a5-4ea9-afef-e52be017fc0f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612819,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cd602b18-88a5-4ea9-afef-e52be017fc0f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612819,\"participants\":[{\"id\":1000073,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1000074,\"user_id\":261,\"contact_id\":null,\"lead_id\":null},{\"id\":1000075,\"user_id\":null,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"cd602b18-88a5-4ea9-afef-e52be017fc0f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cd602b18-88a5-4ea9-afef-e52be017fc0f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cd602b18-88a5-4ea9-afef-e52be017fc0f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cd602b18-88a5-4ea9-afef-e52be017fc0f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"cd602b18-88a5-4ea9-afef-e52be017fc0f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"cd602b18-88a5-4ea9-afef-e52be017fc0f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612819,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"cd602b18-88a5-4ea9-afef-e52be017fc0f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"correlation_id\":\"cd602b18-88a5-4ea9-afef-e52be017fc0f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"correlation_id\":\"cd602b18-88a5-4ea9-afef-e52be017fc0f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":10,\"delay\":10} {\"correlation_id\":\"cd602b18-88a5-4ea9-afef-e52be017fc0f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612673,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"d86174e3-e3b0-41d6-b9f5-97de4ca4da9f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612673} {\"correlation_id\":\"d86174e3-e3b0-41d6-b9f5-97de4ca4da9f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612673,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d86174e3-e3b0-41d6-b9f5-97de4ca4da9f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612673,\"participants\":[{\"id\":999993,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":999994,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"d86174e3-e3b0-41d6-b9f5-97de4ca4da9f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d86174e3-e3b0-41d6-b9f5-97de4ca4da9f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d86174e3-e3b0-41d6-b9f5-97de4ca4da9f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"d86174e3-e3b0-41d6-b9f5-97de4ca4da9f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"d86174e3-e3b0-41d6-b9f5-97de4ca4da9f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"d86174e3-e3b0-41d6-b9f5-97de4ca4da9f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612673,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"d86174e3-e3b0-41d6-b9f5-97de4ca4da9f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612673,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"d86174e3-e3b0-41d6-b9f5-97de4ca4da9f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612673} {\"correlation_id\":\"d86174e3-e3b0-41d6-b9f5-97de4ca4da9f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612673,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d86174e3-e3b0-41d6-b9f5-97de4ca4da9f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612673,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"d86174e3-e3b0-41d6-b9f5-97de4ca4da9f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612642,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"2f9f8923-a6e3-4e5b-a1ae-cdea42bb3cda\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612642} {\"correlation_id\":\"2f9f8923-a6e3-4e5b-a1ae-cdea42bb3cda\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612642,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2f9f8923-a6e3-4e5b-a1ae-cdea42bb3cda\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612642,\"participants\":[{\"id\":999935,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":999936,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"2f9f8923-a6e3-4e5b-a1ae-cdea42bb3cda\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2f9f8923-a6e3-4e5b-a1ae-cdea42bb3cda\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2f9f8923-a6e3-4e5b-a1ae-cdea42bb3cda\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"2f9f8923-a6e3-4e5b-a1ae-cdea42bb3cda\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"2f9f8923-a6e3-4e5b-a1ae-cdea42bb3cda\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"2f9f8923-a6e3-4e5b-a1ae-cdea42bb3cda\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612642,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"2f9f8923-a6e3-4e5b-a1ae-cdea42bb3cda\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612642,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"2f9f8923-a6e3-4e5b-a1ae-cdea42bb3cda\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612642} {\"correlation_id\":\"2f9f8923-a6e3-4e5b-a1ae-cdea42bb3cda\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612642,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2f9f8923-a6e3-4e5b-a1ae-cdea42bb3cda\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612642,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"2f9f8923-a6e3-4e5b-a1ae-cdea42bb3cda\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612598,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612598} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612598,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612598,\"participants\":[{\"id\":999857,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999858,\"user_id\":206,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":243,\"contact_id\":4491,\"owner_id\":206} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":243,\"contact_id\":4491} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":243,\"contact_id\":4491,\"opportunity_id\":276} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612598,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612598,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612598} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612598,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612598,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":5.94,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"6d49ffdc-2ed7-4eae-a1ee-e25ca95bbea8\",\"trace_id\":\"906573b5-005c-4820-8a32-3b0703ea86dd\"}\n[2026-05-11 11:09:28] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612597,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"c69a3a24-bab5-4d56-887b-01111944b3a2\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612597} {\"correlation_id\":\"c69a3a24-bab5-4d56-887b-01111944b3a2\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612597,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"c69a3a24-bab5-4d56-887b-01111944b3a2\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612597,\"participants\":[{\"id\":999855,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999856,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null}]} {\"correlation_id\":\"c69a3a24-bab5-4d56-887b-01111944b3a2\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"c69a3a24-bab5-4d56-887b-01111944b3a2\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"c69a3a24-bab5-4d56-887b-01111944b3a2\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"c69a3a24-bab5-4d56-887b-01111944b3a2\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"c69a3a24-bab5-4d56-887b-01111944b3a2\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612597,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"c69a3a24-bab5-4d56-887b-01111944b3a2\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"c69a3a24-bab5-4d56-887b-01111944b3a2\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612597,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"c69a3a24-bab5-4d56-887b-01111944b3a2\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612597} {\"correlation_id\":\"c69a3a24-bab5-4d56-887b-01111944b3a2\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612597,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"c69a3a24-bab5-4d56-887b-01111944b3a2\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612597,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"c69a3a24-bab5-4d56-887b-01111944b3a2\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612596,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"0da9fc28-653b-406f-bafe-5d78010cb3da\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612596} {\"correlation_id\":\"0da9fc28-653b-406f-bafe-5d78010cb3da\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612596,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0da9fc28-653b-406f-bafe-5d78010cb3da\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612596,\"participants\":[{\"id\":999853,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999854,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null}]} {\"correlation_id\":\"0da9fc28-653b-406f-bafe-5d78010cb3da\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0da9fc28-653b-406f-bafe-5d78010cb3da\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0da9fc28-653b-406f-bafe-5d78010cb3da\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0da9fc28-653b-406f-bafe-5d78010cb3da\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0da9fc28-653b-406f-bafe-5d78010cb3da\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612596,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"0da9fc28-653b-406f-bafe-5d78010cb3da\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"0da9fc28-653b-406f-bafe-5d78010cb3da\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612596,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"0da9fc28-653b-406f-bafe-5d78010cb3da\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612596} {\"correlation_id\":\"0da9fc28-653b-406f-bafe-5d78010cb3da\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612596,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0da9fc28-653b-406f-bafe-5d78010cb3da\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612596,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"0da9fc28-653b-406f-bafe-5d78010cb3da\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612595,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"f7dd9c18-1f48-4adc-b2a2-a5e768444dfd\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612595} {\"correlation_id\":\"f7dd9c18-1f48-4adc-b2a2-a5e768444dfd\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612595,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"f7dd9c18-1f48-4adc-b2a2-a5e768444dfd\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612595,\"participants\":[{\"id\":999851,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999852,\"user_id\":206,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"f7dd9c18-1f48-4adc-b2a2-a5e768444dfd\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f7dd9c18-1f48-4adc-b2a2-a5e768444dfd\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f7dd9c18-1f48-4adc-b2a2-a5e768444dfd\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"f7dd9c18-1f48-4adc-b2a2-a5e768444dfd\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"f7dd9c18-1f48-4adc-b2a2-a5e768444dfd\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"f7dd9c18-1f48-4adc-b2a2-a5e768444dfd\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612595,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"f7dd9c18-1f48-4adc-b2a2-a5e768444dfd\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612595,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"f7dd9c18-1f48-4adc-b2a2-a5e768444dfd\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612595} {\"correlation_id\":\"f7dd9c18-1f48-4adc-b2a2-a5e768444dfd\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612595,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"f7dd9c18-1f48-4adc-b2a2-a5e768444dfd\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612595,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"f7dd9c18-1f48-4adc-b2a2-a5e768444dfd\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612594,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"4dacaa76-fc8b-462e-95ae-b74602d62a8f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612594} {\"correlation_id\":\"4dacaa76-fc8b-462e-95ae-b74602d62a8f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612594,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4dacaa76-fc8b-462e-95ae-b74602d62a8f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612594,\"participants\":[{\"id\":999849,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999850,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null}]} {\"correlation_id\":\"4dacaa76-fc8b-462e-95ae-b74602d62a8f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4dacaa76-fc8b-462e-95ae-b74602d62a8f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4dacaa76-fc8b-462e-95ae-b74602d62a8f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"4dacaa76-fc8b-462e-95ae-b74602d62a8f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"4dacaa76-fc8b-462e-95ae-b74602d62a8f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612594,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"4dacaa76-fc8b-462e-95ae-b74602d62a8f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"4dacaa76-fc8b-462e-95ae-b74602d62a8f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612594,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"4dacaa76-fc8b-462e-95ae-b74602d62a8f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612594} {\"correlation_id\":\"4dacaa76-fc8b-462e-95ae-b74602d62a8f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612594,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4dacaa76-fc8b-462e-95ae-b74602d62a8f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612594,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"4dacaa76-fc8b-462e-95ae-b74602d62a8f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612593,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"0845a766-3bc8-4303-83dc-9f0e57d46a44\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612593} {\"correlation_id\":\"0845a766-3bc8-4303-83dc-9f0e57d46a44\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612593,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0845a766-3bc8-4303-83dc-9f0e57d46a44\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612593,\"participants\":[{\"id\":999847,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999848,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null}]} {\"correlation_id\":\"0845a766-3bc8-4303-83dc-9f0e57d46a44\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0845a766-3bc8-4303-83dc-9f0e57d46a44\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0845a766-3bc8-4303-83dc-9f0e57d46a44\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0845a766-3bc8-4303-83dc-9f0e57d46a44\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0845a766-3bc8-4303-83dc-9f0e57d46a44\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612593,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"0845a766-3bc8-4303-83dc-9f0e57d46a44\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"0845a766-3bc8-4303-83dc-9f0e57d46a44\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612593,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"0845a766-3bc8-4303-83dc-9f0e57d46a44\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612593} {\"correlation_id\":\"0845a766-3bc8-4303-83dc-9f0e57d46a44\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612593,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0845a766-3bc8-4303-83dc-9f0e57d46a44\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612593,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"0845a766-3bc8-4303-83dc-9f0e57d46a44\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612592,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"315733d6-e316-4fb7-9ab6-c38b0bc2a394\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612592} {\"correlation_id\":\"315733d6-e316-4fb7-9ab6-c38b0bc2a394\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612592,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"315733d6-e316-4fb7-9ab6-c38b0bc2a394\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612592,\"participants\":[{\"id\":999845,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999846,\"user_id\":206,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"315733d6-e316-4fb7-9ab6-c38b0bc2a394\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"315733d6-e316-4fb7-9ab6-c38b0bc2a394\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"315733d6-e316-4fb7-9ab6-c38b0bc2a394\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"315733d6-e316-4fb7-9ab6-c38b0bc2a394\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"315733d6-e316-4fb7-9ab6-c38b0bc2a394\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"315733d6-e316-4fb7-9ab6-c38b0bc2a394\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612592,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"315733d6-e316-4fb7-9ab6-c38b0bc2a394\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612592,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"315733d6-e316-4fb7-9ab6-c38b0bc2a394\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612592} {\"correlation_id\":\"315733d6-e316-4fb7-9ab6-c38b0bc2a394\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612592,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"315733d6-e316-4fb7-9ab6-c38b0bc2a394\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612592,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"315733d6-e316-4fb7-9ab6-c38b0bc2a394\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612591,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"a4f3cee6-628d-4ea1-afef-271709541a6f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612591} {\"correlation_id\":\"a4f3cee6-628d-4ea1-afef-271709541a6f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612591,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a4f3cee6-628d-4ea1-afef-271709541a6f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612591,\"participants\":[{\"id\":999843,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999844,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null}]} {\"correlation_id\":\"a4f3cee6-628d-4ea1-afef-271709541a6f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a4f3cee6-628d-4ea1-afef-271709541a6f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a4f3cee6-628d-4ea1-afef-271709541a6f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"a4f3cee6-628d-4ea1-afef-271709541a6f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"a4f3cee6-628d-4ea1-afef-271709541a6f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612591,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"a4f3cee6-628d-4ea1-afef-271709541a6f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"a4f3cee6-628d-4ea1-afef-271709541a6f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612591,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"a4f3cee6-628d-4ea1-afef-271709541a6f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612591} {\"correlation_id\":\"a4f3cee6-628d-4ea1-afef-271709541a6f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612591,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a4f3cee6-628d-4ea1-afef-271709541a6f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612591,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"a4f3cee6-628d-4ea1-afef-271709541a6f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612590,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"dfa94946-5871-4106-8e8f-5e7a418e64ae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612590} {\"correlation_id\":\"dfa94946-5871-4106-8e8f-5e7a418e64ae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612590,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"dfa94946-5871-4106-8e8f-5e7a418e64ae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612590,\"participants\":[{\"id\":999841,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999842,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null}]} {\"correlation_id\":\"dfa94946-5871-4106-8e8f-5e7a418e64ae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"dfa94946-5871-4106-8e8f-5e7a418e64ae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"dfa94946-5871-4106-8e8f-5e7a418e64ae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"dfa94946-5871-4106-8e8f-5e7a418e64ae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"dfa94946-5871-4106-8e8f-5e7a418e64ae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612590,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"dfa94946-5871-4106-8e8f-5e7a418e64ae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"dfa94946-5871-4106-8e8f-5e7a418e64ae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612590,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"dfa94946-5871-4106-8e8f-5e7a418e64ae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612590} {\"correlation_id\":\"dfa94946-5871-4106-8e8f-5e7a418e64ae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612590,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"dfa94946-5871-4106-8e8f-5e7a418e64ae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612590,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"dfa94946-5871-4106-8e8f-5e7a418e64ae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612589,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"92666ef7-2d6e-4056-9d87-23df1bc694b1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612589} {\"correlation_id\":\"92666ef7-2d6e-4056-9d87-23df1bc694b1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612589,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"92666ef7-2d6e-4056-9d87-23df1bc694b1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612589,\"participants\":[{\"id\":999839,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999840,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null}]} {\"correlation_id\":\"92666ef7-2d6e-4056-9d87-23df1bc694b1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"92666ef7-2d6e-4056-9d87-23df1bc694b1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"92666ef7-2d6e-4056-9d87-23df1bc694b1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"92666ef7-2d6e-4056-9d87-23df1bc694b1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"92666ef7-2d6e-4056-9d87-23df1bc694b1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612589,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"92666ef7-2d6e-4056-9d87-23df1bc694b1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"92666ef7-2d6e-4056-9d87-23df1bc694b1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612589,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"92666ef7-2d6e-4056-9d87-23df1bc694b1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612589} {\"correlation_id\":\"92666ef7-2d6e-4056-9d87-23df1bc694b1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612589,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"92666ef7-2d6e-4056-9d87-23df1bc694b1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612589,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"92666ef7-2d6e-4056-9d87-23df1bc694b1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612588,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"7441c20c-f1d3-4310-a3a7-2c1aad9bbe25\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612588} {\"correlation_id\":\"7441c20c-f1d3-4310-a3a7-2c1aad9bbe25\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612588,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7441c20c-f1d3-4310-a3a7-2c1aad9bbe25\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612588,\"participants\":[{\"id\":999837,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999838,\"user_id\":206,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"7441c20c-f1d3-4310-a3a7-2c1aad9bbe25\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7441c20c-f1d3-4310-a3a7-2c1aad9bbe25\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7441c20c-f1d3-4310-a3a7-2c1aad9bbe25\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7441c20c-f1d3-4310-a3a7-2c1aad9bbe25\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"7441c20c-f1d3-4310-a3a7-2c1aad9bbe25\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"7441c20c-f1d3-4310-a3a7-2c1aad9bbe25\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612588,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"7441c20c-f1d3-4310-a3a7-2c1aad9bbe25\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612588,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"7441c20c-f1d3-4310-a3a7-2c1aad9bbe25\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612588} {\"correlation_id\":\"7441c20c-f1d3-4310-a3a7-2c1aad9bbe25\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612588,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7441c20c-f1d3-4310-a3a7-2c1aad9bbe25\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612588,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"7441c20c-f1d3-4310-a3a7-2c1aad9bbe25\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612587,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"b6283377-e461-4841-90a6-bd9b51c31e78\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612587} {\"correlation_id\":\"b6283377-e461-4841-90a6-bd9b51c31e78\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612587,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b6283377-e461-4841-90a6-bd9b51c31e78\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612587,\"participants\":[{\"id\":999835,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999836,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null}]} {\"correlation_id\":\"b6283377-e461-4841-90a6-bd9b51c31e78\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b6283377-e461-4841-90a6-bd9b51c31e78\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b6283377-e461-4841-90a6-bd9b51c31e78\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b6283377-e461-4841-90a6-bd9b51c31e78\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"b6283377-e461-4841-90a6-bd9b51c31e78\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612587,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"b6283377-e461-4841-90a6-bd9b51c31e78\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"b6283377-e461-4841-90a6-bd9b51c31e78\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612587,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"b6283377-e461-4841-90a6-bd9b51c31e78\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612587} {\"correlation_id\":\"b6283377-e461-4841-90a6-bd9b51c31e78\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612587,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b6283377-e461-4841-90a6-bd9b51c31e78\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612587,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"b6283377-e461-4841-90a6-bd9b51c31e78\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612586,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"d0ddb01c-2b21-4989-998a-fa52e7affced\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612586} {\"correlation_id\":\"d0ddb01c-2b21-4989-998a-fa52e7affced\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612586,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d0ddb01c-2b21-4989-998a-fa52e7affced\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612586,\"participants\":[{\"id\":999833,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999834,\"user_id\":206,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"d0ddb01c-2b21-4989-998a-fa52e7affced\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d0ddb01c-2b21-4989-998a-fa52e7affced\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d0ddb01c-2b21-4989-998a-fa52e7affced\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"d0ddb01c-2b21-4989-998a-fa52e7affced\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"d0ddb01c-2b21-4989-998a-fa52e7affced\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"d0ddb01c-2b21-4989-998a-fa52e7affced\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612586,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"d0ddb01c-2b21-4989-998a-fa52e7affced\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612586,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"d0ddb01c-2b21-4989-998a-fa52e7affced\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612586} {\"correlation_id\":\"d0ddb01c-2b21-4989-998a-fa52e7affced\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612586,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d0ddb01c-2b21-4989-998a-fa52e7affced\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612586,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"d0ddb01c-2b21-4989-998a-fa52e7affced\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.NOTICE: Monitoring start {\"correlation_id\":\"772cf24f-66f8-49c0-8ef5-e6c1d128fccb\",\"trace_id\":\"2d950f5a-3a35-4a8b-b33b-4d129409925b\"}\n[2026-05-11 11:09:31] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612585,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"cef11ffe-61af-425d-b899-399323237a47\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612585} {\"correlation_id\":\"cef11ffe-61af-425d-b899-399323237a47\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612585,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cef11ffe-61af-425d-b899-399323237a47\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.NOTICE: Monitoring end {\"correlation_id\":\"772cf24f-66f8-49c0-8ef5-e6c1d128fccb\",\"trace_id\":\"2d950f5a-3a35-4a8b-b33b-4d129409925b\"}\n[2026-05-11 11:09:31] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612585,\"participants\":[{\"id\":999831,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999832,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null}]} {\"correlation_id\":\"cef11ffe-61af-425d-b899-399323237a47\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cef11ffe-61af-425d-b899-399323237a47\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cef11ffe-61af-425d-b899-399323237a47\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cef11ffe-61af-425d-b899-399323237a47\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"cef11ffe-61af-425d-b899-399323237a47\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612585,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"cef11ffe-61af-425d-b899-399323237a47\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"cef11ffe-61af-425d-b899-399323237a47\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612585,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"cef11ffe-61af-425d-b899-399323237a47\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612585} {\"correlation_id\":\"cef11ffe-61af-425d-b899-399323237a47\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612585,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cef11ffe-61af-425d-b899-399323237a47\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612585,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"cef11ffe-61af-425d-b899-399323237a47\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612584,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"2aa83935-5a46-4a3d-98d7-acfcf3f3f6cb\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612584} {\"correlation_id\":\"2aa83935-5a46-4a3d-98d7-acfcf3f3f6cb\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612584,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2aa83935-5a46-4a3d-98d7-acfcf3f3f6cb\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612584,\"participants\":[{\"id\":999829,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999830,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null}]} {\"correlation_id\":\"2aa83935-5a46-4a3d-98d7-acfcf3f3f6cb\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2aa83935-5a46-4a3d-98d7-acfcf3f3f6cb\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2aa83935-5a46-4a3d-98d7-acfcf3f3f6cb\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"2aa83935-5a46-4a3d-98d7-acfcf3f3f6cb\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"2aa83935-5a46-4a3d-98d7-acfcf3f3f6cb\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612584,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"2aa83935-5a46-4a3d-98d7-acfcf3f3f6cb\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"2aa83935-5a46-4a3d-98d7-acfcf3f3f6cb\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612584,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"2aa83935-5a46-4a3d-98d7-acfcf3f3f6cb\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612584} {\"correlation_id\":\"2aa83935-5a46-4a3d-98d7-acfcf3f3f6cb\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612584,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2aa83935-5a46-4a3d-98d7-acfcf3f3f6cb\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612584,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"2aa83935-5a46-4a3d-98d7-acfcf3f3f6cb\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612583,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"04dd4d55-bdb2-4f42-9fbd-8a132707b475\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612583} {\"correlation_id\":\"04dd4d55-bdb2-4f42-9fbd-8a132707b475\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612583,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"04dd4d55-bdb2-4f42-9fbd-8a132707b475\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612583,\"participants\":[{\"id\":999827,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999828,\"user_id\":206,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"04dd4d55-bdb2-4f42-9fbd-8a132707b475\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"04dd4d55-bdb2-4f42-9fbd-8a132707b475\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"04dd4d55-bdb2-4f42-9fbd-8a132707b475\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"04dd4d55-bdb2-4f42-9fbd-8a132707b475\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"04dd4d55-bdb2-4f42-9fbd-8a132707b475\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"04dd4d55-bdb2-4f42-9fbd-8a132707b475\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612583,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"04dd4d55-bdb2-4f42-9fbd-8a132707b475\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612583,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"04dd4d55-bdb2-4f42-9fbd-8a132707b475\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612583} {\"correlation_id\":\"04dd4d55-bdb2-4f42-9fbd-8a132707b475\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612583,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"04dd4d55-bdb2-4f42-9fbd-8a132707b475\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612583,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"04dd4d55-bdb2-4f42-9fbd-8a132707b475\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612582,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"58e7116b-76f4-4698-a629-ff1eb613d93e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612582} {\"correlation_id\":\"58e7116b-76f4-4698-a629-ff1eb613d93e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612582,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"58e7116b-76f4-4698-a629-ff1eb613d93e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612582,\"participants\":[{\"id\":999825,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999826,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null}]} {\"correlation_id\":\"58e7116b-76f4-4698-a629-ff1eb613d93e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"58e7116b-76f4-4698-a629-ff1eb613d93e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"58e7116b-76f4-4698-a629-ff1eb613d93e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"58e7116b-76f4-4698-a629-ff1eb613d93e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"58e7116b-76f4-4698-a629-ff1eb613d93e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612582,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"58e7116b-76f4-4698-a629-ff1eb613d93e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"58e7116b-76f4-4698-a629-ff1eb613d93e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612582,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"58e7116b-76f4-4698-a629-ff1eb613d93e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612582} {\"correlation_id\":\"58e7116b-76f4-4698-a629-ff1eb613d93e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612582,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"58e7116b-76f4-4698-a629-ff1eb613d93e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612582,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"58e7116b-76f4-4698-a629-ff1eb613d93e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612581,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"b1cdf1eb-a77f-4062-bc7a-52e75ec005f1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612581} {\"correlation_id\":\"b1cdf1eb-a77f-4062-bc7a-52e75ec005f1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612581,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b1cdf1eb-a77f-4062-bc7a-52e75ec005f1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612581,\"participants\":[{\"id\":999823,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999824,\"user_id\":206,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"b1cdf1eb-a77f-4062-bc7a-52e75ec005f1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b1cdf1eb-a77f-4062-bc7a-52e75ec005f1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b1cdf1eb-a77f-4062-bc7a-52e75ec005f1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b1cdf1eb-a77f-4062-bc7a-52e75ec005f1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"b1cdf1eb-a77f-4062-bc7a-52e75ec005f1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"b1cdf1eb-a77f-4062-bc7a-52e75ec005f1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612581,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"b1cdf1eb-a77f-4062-bc7a-52e75ec005f1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612581,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"b1cdf1eb-a77f-4062-bc7a-52e75ec005f1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612581} {\"correlation_id\":\"b1cdf1eb-a77f-4062-bc7a-52e75ec005f1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612581,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b1cdf1eb-a77f-4062-bc7a-52e75ec005f1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612581,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"b1cdf1eb-a77f-4062-bc7a-52e75ec005f1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612565,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"4531fd00-7875-4334-b3c2-407d31ec1255\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612565} {\"correlation_id\":\"4531fd00-7875-4334-b3c2-407d31ec1255\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612565,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4531fd00-7875-4334-b3c2-407d31ec1255\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612565,\"participants\":[{\"id\":999789,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999790,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null}]} {\"correlation_id\":\"4531fd00-7875-4334-b3c2-407d31ec1255\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4531fd00-7875-4334-b3c2-407d31ec1255\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4531fd00-7875-4334-b3c2-407d31ec1255\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"4531fd00-7875-4334-b3c2-407d31ec1255\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"4531fd00-7875-4334-b3c2-407d31ec1255\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612565,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"4531fd00-7875-4334-b3c2-407d31ec1255\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"4531fd00-7875-4334-b3c2-407d31ec1255\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612565,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"4531fd00-7875-4334-b3c2-407d31ec1255\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612565} {\"correlation_id\":\"4531fd00-7875-4334-b3c2-407d31ec1255\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612565,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4531fd00-7875-4334-b3c2-407d31ec1255\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612565,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"4531fd00-7875-4334-b3c2-407d31ec1255\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612563,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34}} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612563} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612563,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612563,\"participants\":[{\"id\":999784,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999785,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null}]} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612563,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":206} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":244,\"contact_id\":4487} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":350} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612563,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612563} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612563,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612563,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612562,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"correlation_id\":\"096bc408-0a3f-43ef-9cf6-f9007ee7315c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612562} {\"correlation_id\":\"096bc408-0a3f-43ef-9cf6-f9007ee7315c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612562,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"096bc408-0a3f-43ef-9cf6-f9007ee7315c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612562,\"participants\":[{\"id\":999782,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":999783,\"user_id\":206,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"096bc408-0a3f-43ef-9cf6-f9007ee7315c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"096bc408-0a3f-43ef-9cf6-f9007ee7315c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"096bc408-0a3f-43ef-9cf6-f9007ee7315c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"096bc408-0a3f-43ef-9cf6-f9007ee7315c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"096bc408-0a3f-43ef-9cf6-f9007ee7315c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"447782589921@txt.staging.jiminny.com\"} {\"correlation_id\":\"096bc408-0a3f-43ef-9cf6-f9007ee7315c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:34] local.INFO: [Hubspot] Failed to fetch contact {\"email\":\"447782589921@txt.staging.jiminny.com\",\"reason\":\"[404] Client error: `GET https://api.hubapi.com/crm/v3/objects/contacts/447782589921%40txt.staging.jiminny.com?properties=email%2Cfirstname%2Clastname%2Ccountry%2Cphone%2Cmobilephone%2Cjobtitle%2Chubspot_owner_id%2Cassociatedcompanyid%2Cphoto&archived=0&idProperty=email` resulted in a `404 Not Found` response\"} {\"correlation_id\":\"096bc408-0a3f-43ef-9cf6-f9007ee7315c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:34] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {\"identifier_type\":\"email\",\"identifier\":\"447782589921@txt.staging.jiminny.com\"} {\"correlation_id\":\"096bc408-0a3f-43ef-9cf6-f9007ee7315c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:34] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":10,\"delay\":14} {\"correlation_id\":\"096bc408-0a3f-43ef-9cf6-f9007ee7315c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:34] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612561,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"correlation_id\":\"cded6bdb-0e7c-4baa-b280-5798e81b236a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:34] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612561} {\"correlation_id\":\"cded6bdb-0e7c-4baa-b280-5798e81b236a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:34] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612561,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cded6bdb-0e7c-4baa-b280-5798e81b236a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:34] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612561,\"participants\":[{\"id\":999780,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999781,\"user_id\":null,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"cded6bdb-0e7c-4baa-b280-5798e81b236a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:34] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cded6bdb-0e7c-4baa-b280-5798e81b236a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:34] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cded6bdb-0e7c-4baa-b280-5798e81b236a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:34] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cded6bdb-0e7c-4baa-b280-5798e81b236a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:34] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"cded6bdb-0e7c-4baa-b280-5798e81b236a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:34] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612561,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"cded6bdb-0e7c-4baa-b280-5798e81b236a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:34] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"447700174614.447782589921.OeREojLVnk@txt.staging.jiminny.com\"} {\"correlation_id\":\"cded6bdb-0e7c-4baa-b280-5798e81b236a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [Hubspot] Failed to fetch contact {\"email\":\"447700174614.447782589921.OeREojLVnk@txt.staging.jiminny.com\",\"reason\":\"[404] Client error: `GET https://api.hubapi.com/crm/v3/objects/contacts/447700174614.447782589921.OeREojLVnk%40txt.staging.jiminny.com?properties=email%2Cfirstname%2Clastname%2Ccountry%2Cphone%2Cmobilephone%2Cjobtitle%2Chubspot_owner_id%2Cassociatedcompanyid%2Cphoto&archived=0&idProperty=email` resulted in a `404 Not Found` response\"} {\"correlation_id\":\"cded6bdb-0e7c-4baa-b280-5798e81b236a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {\"identifier_type\":\"email\",\"identifier\":\"447700174614.447782589921.OeREojLVnk@txt.staging.jiminny.com\"} {\"correlation_id\":\"cded6bdb-0e7c-4baa-b280-5798e81b236a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":10,\"delay\":10} {\"correlation_id\":\"cded6bdb-0e7c-4baa-b280-5798e81b236a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612560,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"correlation_id\":\"53ef5599-df42-4f3d-90a1-8f89c19435e4\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612560} {\"correlation_id\":\"53ef5599-df42-4f3d-90a1-8f89c19435e4\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612560,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"53ef5599-df42-4f3d-90a1-8f89c19435e4\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612560,\"participants\":[{\"id\":999778,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":999779,\"user_id\":206,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"53ef5599-df42-4f3d-90a1-8f89c19435e4\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"53ef5599-df42-4f3d-90a1-8f89c19435e4\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"53ef5599-df42-4f3d-90a1-8f89c19435e4\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"53ef5599-df42-4f3d-90a1-8f89c19435e4\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"53ef5599-df42-4f3d-90a1-8f89c19435e4\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"447782589921@txt.staging.jiminny.com\"} {\"correlation_id\":\"53ef5599-df42-4f3d-90a1-8f89c19435e4\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"447782589921@txt.staging.jiminny.com\"} {\"correlation_id\":\"53ef5599-df42-4f3d-90a1-8f89c19435e4\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":10,\"delay\":12} {\"correlation_id\":\"53ef5599-df42-4f3d-90a1-8f89c19435e4\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612559,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34}} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612559} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612559,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612559,\"participants\":[{\"id\":999776,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999777,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612559,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":69,\"contact_id\":97,\"owner_id\":206} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":69,\"contact_id\":97} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":69,\"contact_id\":97,\"opportunity_id\":5011} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":2.07,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"6d49ffdc-2ed7-4eae-a1ee-e25ca95bbea8\",\"trace_id\":\"906573b5-005c-4820-8a32-3b0703ea86dd\"}\n[2026-05-11 11:09:35] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612559,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612559} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612559,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612559,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612558,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34}} {\"correlation_id\":\"34a7b1c6-be3b-4790-a04c-0311e25dadc8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612558} {\"correlation_id\":\"34a7b1c6-be3b-4790-a04c-0311e25dadc8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612558,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"34a7b1c6-be3b-4790-a04c-0311e25dadc8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612558,\"participants\":[{\"id\":999774,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999775,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"34a7b1c6-be3b-4790-a04c-0311e25dadc8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"34a7b1c6-be3b-4790-a04c-0311e25dadc8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"34a7b1c6-be3b-4790-a04c-0311e25dadc8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"34a7b1c6-be3b-4790-a04c-0311e25dadc8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"34a7b1c6-be3b-4790-a04c-0311e25dadc8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612558,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"34a7b1c6-be3b-4790-a04c-0311e25dadc8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"34a7b1c6-be3b-4790-a04c-0311e25dadc8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612558,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"34a7b1c6-be3b-4790-a04c-0311e25dadc8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612558} {\"correlation_id\":\"34a7b1c6-be3b-4790-a04c-0311e25dadc8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612558,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"34a7b1c6-be3b-4790-a04c-0311e25dadc8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612558,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34} {\"correlation_id\":\"34a7b1c6-be3b-4790-a04c-0311e25dadc8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612557,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34}} {\"correlation_id\":\"26d4d3d0-ebf8-44ad-a48f-24728e5539e0\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612557} {\"correlation_id\":\"26d4d3d0-ebf8-44ad-a48f-24728e5539e0\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612557,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"26d4d3d0-ebf8-44ad-a48f-24728e5539e0\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612557,\"participants\":[{\"id\":999772,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999773,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"26d4d3d0-ebf8-44ad-a48f-24728e5539e0\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"26d4d3d0-ebf8-44ad-a48f-24728e5539e0\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"26d4d3d0-ebf8-44ad-a48f-24728e5539e0\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"26d4d3d0-ebf8-44ad-a48f-24728e5539e0\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"26d4d3d0-ebf8-44ad-a48f-24728e5539e0\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612557,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"26d4d3d0-ebf8-44ad-a48f-24728e5539e0\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"26d4d3d0-ebf8-44ad-a48f-24728e5539e0\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612557,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"26d4d3d0-ebf8-44ad-a48f-24728e5539e0\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612557} {\"correlation_id\":\"26d4d3d0-ebf8-44ad-a48f-24728e5539e0\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612557,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"26d4d3d0-ebf8-44ad-a48f-24728e5539e0\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612557,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34} {\"correlation_id\":\"26d4d3d0-ebf8-44ad-a48f-24728e5539e0\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612556,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34}} {\"correlation_id\":\"406b7ad3-26d6-4b1b-9ad7-fff68622b149\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612556} {\"correlation_id\":\"406b7ad3-26d6-4b1b-9ad7-fff68622b149\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612556,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"406b7ad3-26d6-4b1b-9ad7-fff68622b149\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612556,\"participants\":[{\"id\":999770,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999771,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"406b7ad3-26d6-4b1b-9ad7-fff68622b149\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"406b7ad3-26d6-4b1b-9ad7-fff68622b149\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"406b7ad3-26d6-4b1b-9ad7-fff68622b149\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"406b7ad3-26d6-4b1b-9ad7-fff68622b149\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"406b7ad3-26d6-4b1b-9ad7-fff68622b149\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612556,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"406b7ad3-26d6-4b1b-9ad7-fff68622b149\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"406b7ad3-26d6-4b1b-9ad7-fff68622b149\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612556,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"406b7ad3-26d6-4b1b-9ad7-fff68622b149\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612556} {\"correlation_id\":\"406b7ad3-26d6-4b1b-9ad7-fff68622b149\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612556,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"406b7ad3-26d6-4b1b-9ad7-fff68622b149\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612556,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34} {\"correlation_id\":\"406b7ad3-26d6-4b1b-9ad7-fff68622b149\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612555,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34}} {\"correlation_id\":\"c15b7703-f17b-48e7-bf38-122448d79345\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612555} {\"correlation_id\":\"c15b7703-f17b-48e7-bf38-122448d79345\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612555,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"c15b7703-f17b-48e7-bf38-122448d79345\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612555,\"participants\":[{\"id\":999768,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999769,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"c15b7703-f17b-48e7-bf38-122448d79345\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"c15b7703-f17b-48e7-bf38-122448d79345\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"c15b7703-f17b-48e7-bf38-122448d79345\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"c15b7703-f17b-48e7-bf38-122448d79345\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"c15b7703-f17b-48e7-bf38-122448d79345\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612555,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"c15b7703-f17b-48e7-bf38-122448d79345\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"c15b7703-f17b-48e7-bf38-122448d79345\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612555,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"c15b7703-f17b-48e7-bf38-122448d79345\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612555} {\"correlation_id\":\"c15b7703-f17b-48e7-bf38-122448d79345\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612555,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"c15b7703-f17b-48e7-bf38-122448d79345\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612555,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34} {\"correlation_id\":\"c15b7703-f17b-48e7-bf38-122448d79345\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612554,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34}} {\"correlation_id\":\"c9cce71b-d96d-4117-b9fb-bb9672ae7c2b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612554} {\"correlation_id\":\"c9cce71b-d96d-4117-b9fb-bb9672ae7c2b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612554,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"c9cce71b-d96d-4117-b9fb-bb9672ae7c2b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612554,\"participants\":[{\"id\":999766,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999767,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"c9cce71b-d96d-4117-b9fb-bb9672ae7c2b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"c9cce71b-d96d-4117-b9fb-bb9672ae7c2b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"c9cce71b-d96d-4117-b9fb-bb9672ae7c2b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"c9cce71b-d96d-4117-b9fb-bb9672ae7c2b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"c9cce71b-d96d-4117-b9fb-bb9672ae7c2b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612554,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"c9cce71b-d96d-4117-b9fb-bb9672ae7c2b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"c9cce71b-d96d-4117-b9fb-bb9672ae7c2b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612554,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"c9cce71b-d96d-4117-b9fb-bb9672ae7c2b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612554} {\"correlation_id\":\"c9cce71b-d96d-4117-b9fb-bb9672ae7c2b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612554,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"c9cce71b-d96d-4117-b9fb-bb9672ae7c2b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612554,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34} {\"correlation_id\":\"c9cce71b-d96d-4117-b9fb-bb9672ae7c2b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612553,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34}} {\"correlation_id\":\"ffd2857e-be14-4ab1-8533-93b20116db02\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612553} {\"correlation_id\":\"ffd2857e-be14-4ab1-8533-93b20116db02\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612553,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ffd2857e-be14-4ab1-8533-93b20116db02\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612553,\"participants\":[{\"id\":999764,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999765,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"ffd2857e-be14-4ab1-8533-93b20116db02\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ffd2857e-be14-4ab1-8533-93b20116db02\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ffd2857e-be14-4ab1-8533-93b20116db02\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ffd2857e-be14-4ab1-8533-93b20116db02\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ffd2857e-be14-4ab1-8533-93b20116db02\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612553,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"ffd2857e-be14-4ab1-8533-93b20116db02\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"ffd2857e-be14-4ab1-8533-93b20116db02\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612553,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"ffd2857e-be14-4ab1-8533-93b20116db02\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612553} {\"correlation_id\":\"ffd2857e-be14-4ab1-8533-93b20116db02\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612553,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ffd2857e-be14-4ab1-8533-93b20116db02\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612553,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34} {\"correlation_id\":\"ffd2857e-be14-4ab1-8533-93b20116db02\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612552,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34}} {\"correlation_id\":\"7942c5ee-3b2d-4f76-8728-d5343cd7b02e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612552} {\"correlation_id\":\"7942c5ee-3b2d-4f76-8728-d5343cd7b02e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612552,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7942c5ee-3b2d-4f76-8728-d5343cd7b02e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612552,\"participants\":[{\"id\":999762,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999763,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"7942c5ee-3b2d-4f76-8728-d5343cd7b02e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7942c5ee-3b2d-4f76-8728-d5343cd7b02e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7942c5ee-3b2d-4f76-8728-d5343cd7b02e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7942c5ee-3b2d-4f76-8728-d5343cd7b02e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"7942c5ee-3b2d-4f76-8728-d5343cd7b02e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612552,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"7942c5ee-3b2d-4f76-8728-d5343cd7b02e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"7942c5ee-3b2d-4f76-8728-d5343cd7b02e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612552,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"7942c5ee-3b2d-4f76-8728-d5343cd7b02e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612552} {\"correlation_id\":\"7942c5ee-3b2d-4f76-8728-d5343cd7b02e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612552,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7942c5ee-3b2d-4f76-8728-d5343cd7b02e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612552,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34} {\"correlation_id\":\"7942c5ee-3b2d-4f76-8728-d5343cd7b02e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612551,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34}} {\"correlation_id\":\"8068bb0d-ab6d-48ee-abe2-d6cd116aba26\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612551} {\"correlation_id\":\"8068bb0d-ab6d-48ee-abe2-d6cd116aba26\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612551,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8068bb0d-ab6d-48ee-abe2-d6cd116aba26\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612551,\"participants\":[{\"id\":999760,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999761,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"8068bb0d-ab6d-48ee-abe2-d6cd116aba26\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8068bb0d-ab6d-48ee-abe2-d6cd116aba26\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8068bb0d-ab6d-48ee-abe2-d6cd116aba26\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"8068bb0d-ab6d-48ee-abe2-d6cd116aba26\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"8068bb0d-ab6d-48ee-abe2-d6cd116aba26\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612551,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"8068bb0d-ab6d-48ee-abe2-d6cd116aba26\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"8068bb0d-ab6d-48ee-abe2-d6cd116aba26\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612551,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"8068bb0d-ab6d-48ee-abe2-d6cd116aba26\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612551} {\"correlation_id\":\"8068bb0d-ab6d-48ee-abe2-d6cd116aba26\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612551,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8068bb0d-ab6d-48ee-abe2-d6cd116aba26\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612551,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34} {\"correlation_id\":\"8068bb0d-ab6d-48ee-abe2-d6cd116aba26\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:37] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612550,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34}} {\"correlation_id\":\"36bdbff9-cfb6-43af-b7c4-f2caafa8e794\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:37] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612550} {\"correlation_id\":\"36bdbff9-cfb6-43af-b7c4-f2caafa8e794\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:37] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612550,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"36bdbff9-cfb6-43af-b7c4-f2caafa8e794\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:37] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612550,\"participants\":[{\"id\":999758,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999759,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"36bdbff9-cfb6-43af-b7c4-f2caafa8e794\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:37] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"36bdbff9-cfb6-43af-b7c4-f2caafa8e794\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:37] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"36bdbff9-cfb6-43af-b7c4-f2caafa8e794\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:37] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"36bdbff9-cfb6-43af-b7c4-f2caafa8e794\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:37] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"36bdbff9-cfb6-43af-b7c4-f2caafa8e794\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:37] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612550,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"36bdbff9-cfb6-43af-b7c4-f2caafa8e794\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:37] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"36bdbff9-cfb6-43af-b7c4-f2caafa8e794\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:37] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612550,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"36bdbff9-cfb6-43af-b7c4-f2caafa8e794\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:38] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612550} {\"correlation_id\":\"36bdbff9-cfb6-43af-b7c4-f2caafa8e794\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:38] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612550,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"36bdbff9-cfb6-43af-b7c4-f2caafa8e794\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:38] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612550,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34} {\"correlation_id\":\"36bdbff9-cfb6-43af-b7c4-f2caafa8e794\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:38] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612549,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34}} {\"correlation_id\":\"c2ff3c6c-7380-4c1c-a1f5-50044a473ac8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:38] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612549} {\"correlation_id\":\"c2ff3c6c-7380-4c1c-a1f5-50044a473ac8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:38] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612549,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"c2ff3c6c-7380-4c1c-a1f5-50044a473ac8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:38] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612549,\"participants\":[{\"id\":999756,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999757,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"c2ff3c6c-7380-4c1c-a1f5-50044a473ac8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:39] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"c2ff3c6c-7380-4c1c-a1f5-50044a473ac8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:39] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"c2ff3c6c-7380-4c1c-a1f5-50044a473ac8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:39] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"c2ff3c6c-7380-4c1c-a1f5-50044a473ac8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"c2ff3c6c-7380-4c1c-a1f5-50044a473ac8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:39] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612549,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"c2ff3c6c-7380-4c1c-a1f5-50044a473ac8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:39] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"c2ff3c6c-7380-4c1c-a1f5-50044a473ac8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:39] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612549,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"c2ff3c6c-7380-4c1c-a1f5-50044a473ac8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:39] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612549} {\"correlation_id\":\"c2ff3c6c-7380-4c1c-a1f5-50044a473ac8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612549,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"c2ff3c6c-7380-4c1c-a1f5-50044a473ac8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:39] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612549,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34} {\"correlation_id\":\"c2ff3c6c-7380-4c1c-a1f5-50044a473ac8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:40] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612365,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"a9faea34-163e-4d2a-8007-c903951e3b79\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612365} {\"correlation_id\":\"a9faea34-163e-4d2a-8007-c903951e3b79\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612365,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a9faea34-163e-4d2a-8007-c903951e3b79\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:40] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612365,\"participants\":[{\"id\":999563,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999564,\"user_id\":206,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"a9faea34-163e-4d2a-8007-c903951e3b79\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a9faea34-163e-4d2a-8007-c903951e3b79\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a9faea34-163e-4d2a-8007-c903951e3b79\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"a9faea34-163e-4d2a-8007-c903951e3b79\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"a9faea34-163e-4d2a-8007-c903951e3b79\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"a9faea34-163e-4d2a-8007-c903951e3b79\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:40] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612365,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"a9faea34-163e-4d2a-8007-c903951e3b79\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612365,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"a9faea34-163e-4d2a-8007-c903951e3b79\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612365} {\"correlation_id\":\"a9faea34-163e-4d2a-8007-c903951e3b79\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612365,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a9faea34-163e-4d2a-8007-c903951e3b79\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:41] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612365,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"a9faea34-163e-4d2a-8007-c903951e3b79\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Project","depth":3,"on_screen":false,"role_description":"text"}]...
|
8682107944457975172
|
-2556523036834395804
|
click
|
accessibility
|
NULL
|
Project: faVsco.js, menu
JY-20725-handle-HS-search Project: faVsco.js, menu
JY-20725-handle-HS-search-rate-limit, menu
Start Listening for PHP Debug Connections
HandleHubspotRateLimitTest
Run 'HandleHubspotRateLimitTest'
Debug 'HandleHubspotRateLimitTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
1
2
67
3
Previous Highlighted Error
Next Highlighted Error
<?php
declare(strict_types=1);
namespace Jiminny\Services\Crm\Hubspot;
use HubSpot\Client\Crm\Deals\ApiException as DealApiException;
use HubSpot\Client\Crm\Contacts\ApiException as ContactApiException;
use HubSpot\Client\Crm\Companies\ApiException as CompanyApiException;
use HubSpot\Client\Crm\Contacts\Model\SimplePublicObjectWithAssociations as ContactsWithAssociations;
use HubSpot\Client\Crm\Companies\Model\SimplePublicObjectWithAssociations as CompaniesWithAssociations;
use HubSpot\Client\Crm\Deals\Model\SimplePublicObjectWithAssociations as DealWithAssociations;
use HubSpot\Client\Crm\Objects\Model\SimplePublicObjectInput;
use HubSpot\Client\Crm\Objects\Model\SimplePublicObjectWithAssociations as ObjectWithAssociations;
use HubSpot\Client\Crm\Pipelines\Model\Error;
use HubSpot\Client\Crm\Pipelines\Model\PipelineStage;
use HubSpot\Client\Crm\Properties\Model\Property;
use HubSpot\Discovery\Discovery;
use Jiminny\Exceptions\CrmException;
use Jiminny\Exceptions\RateLimitException;
use Jiminny\Exceptions\SocialAccountTokenInvalidException;
use Jiminny\Jobs\Crm\NoteObject;
use Jiminny\Models\Crm\Field;
use Jiminny\Services\Crm\BaseClient;
use Jiminny\Services\Crm\Hubspot\DTO\Response\Owner;
use Jiminny\Services\SocialAccountService;
use SevenShores\Hubspot\Exceptions\BadRequest;
use SevenShores\Hubspot\Exceptions\HubspotException;
use SevenShores\Hubspot\Factory;
use SevenShores\Hubspot\Http\Response;
use Jiminny\Services\Crm\Hubspot\Pagination\HubspotPaginationService;
use Illuminate\Support\Facades\Redis;
use Throwable;
/**
* @phpstan-type CrmFieldOption array{id:string, label:string, value?:string}
*/
class Client extends BaseClient implements HubspotClientInterface
{
public const string MIN_API_VERSION = '2';
public const string BASE_URL = '[URL_WITH_CREDENTIALS] T
* @param callable(): T $apiCall
* @return T
*
* @throws RateLimitException
*/
private function executeRequest(callable $apiCall)
{
$cacheKey = $this->getRateLimitCacheKey();
$cachedRetryAfter = Redis::get($cacheKey);
if (is_string($cachedRetryAfter) && is_numeric($cachedRetryAfter)) {
throw new RateLimitException(
'Hubspot rate limit (cached circuit-breaker)',
(int) $cachedRetryAfter,
);
}
try {
return $apiCall();
} catch (Throwable $e) {
if ($this->isHubspotRateLimit($e)) {
$retryAfter = $this->parseRetryAfter($e);
Redis::setex($cacheKey, $retryAfter, (string) $retryAfter);
$this->log->warning('[Hubspot] Received 429 from API', [
'team_id' => $this->config->team_id,
'config_id' => $this->config->getId(),
'retry_after' => $retryAfter,
'reason' => $e->getMessage(),
]);
throw new RateLimitException('Hubspot returned 429', $retryAfter, $e);
}
throw $e;
}
}
private function getRateLimitCacheKey(): string
{
return sprintf('hubspot:ratelimit:portal:%d', $this->config->getId());
}
public function isHubspotRateLimit(Throwable $e): bool
{
if ($e instanceof BadRequest
|| $e instanceof DealApiException
|| $e instanceof ContactApiException
|| $e instanceof CompanyApiException
|| $e instanceof \GuzzleHttp\Exception\RequestException
) {
return (int) $e->getCode() === 429;
}
return false;
}
public function parseRetryAfter(Throwable $e): int
{
if (method_exists($e, 'getResponseHeaders')) {
$headers = $e->getResponseHeaders() ?: [];
$value = $headers['Retry-After'] ?? $headers['retry-after'] ?? null;
if (is_array($value)) {
$value = $value[0] ?? null;
}
if (is_numeric($value)) {
return (int) $value;
}
}
$message = strtolower($e->getMessage());
if (str_contains($message, 'daily')) {
return 600;
}
if (str_contains($message, 'ten secondly')) {
return 10;
}
if (str_contains($message, 'secondly')) {
return 1;
}
$this->log->warning('[Hubspot] No retry-after header or known message, using default', [
'exception_class' => get_class($e),
'message' => $message,
]);
return 10;
}
public function parseMessage(Throwable $e): string
{
if (! method_exists($e, 'getResponseBody')) {
return '';
}
$body = $e->getResponseBody();
if (is_string($body)) {
$body = json_decode($body, true) ?? [];
}
if (! is_array($body)) {
return '';
}
return (string) ($body['message'] ?? '');
}
public function getMinimumApiVersion(): string
{
return self::MIN_API_VERSION;
}
public function getInstance(): Factory
{
return new Factory([
'key' => $this->accessToken,
'oauth2' => true,
'base_url' => $this->baseUrl,
]);
}
public function getNewInstance(): Discovery
{
return \HubSpot\Factory::createWithAccessToken($this->accessToken);
}
/**
* Secondly and daily limits for Hubspot API
*
* Product Tier: Free & Starter | Professional & Enterprise | API add-on (any tier)
* Burst: 100/10 seconds | 150/10 seconds | 200/10 seconds
* Daily: 250,000 | 500,000 | 1,000,000
*
* Official documentation states: The search endpoints are rate limited to five requests per second.
* Since with 5 RPS were still hitting secondly rate limits we lowered it to 4
*/
public function getPaginatedData(array $payload, string $type, int $offset = 0): array
{
$total = 0;
$lastId = null;
$rows = [];
foreach ($this->getPaginatedDataGenerator($payload, $type, $offset, $total, $lastId) as $row) {
$rows[] = $row;
}
return ['results' => $rows, 'total' => $total, 'last_record' => $lastId];
}
/**
* @throws HubspotException
* @throws SocialAccountTokenInvalidException
* @throws BadRequest
*/
public function getPaginatedDataGenerator(
array $payload,
string $type,
int $offset = 0,
int &$total = 0,
?string &$lastRecordId = null
): \Generator {
return $this->paginationService->getPaginatedDataGenerator(
$this,
$payload,
$type,
$offset,
$total,
$lastRecordId
);
}
/**
* Execute a search request against HubSpot CRM objects with rate limiting.
*
* @param string $objectType The object type ('deals', 'companies', 'contacts', 'calls')
* @param array<string, mixed> $payload The search payload with filters, sorts, properties, etc.
* @return array The search response with 'results', 'total', 'paging' keys
* @throws RateLimitException When rate limit is hit
* @throws HubspotException On API errors
*/
public function search(string $objectType, array $payload): array
{
$endpoint = self::BASE_URL . "/crm/v3/objects/{$objectType}/search";
return $this->executeRequest(function () use ($endpoint, $payload) {
$response = $this->getInstance()->getClient()->request('POST', $endpoint, ['json' => $payload]);
return $response->toArray();
});
}
/**
* @throws DealApiException
* @throws CrmException
*/
public function getOpportunityById(string $crmId, array $fields): array
{
try {
$deal = $this->getNewInstance()->crm()->deals()->basicApi()->getById(
$crmId,
implode(',', $fields),
'companies,contacts'
);
} catch (DealApiException $e) {
$this->log->info('[Hubspot] Failed to fetch opportunity', [
'crm_id' => $crmId,
'reason' => $e->getMessage(),
]);
throw $e;
}
if (! $deal instanceof DealWithAssociations) {
throw new CrmException('Deal not found');
}
return [
'id' => $deal->getId(),
'properties' => $deal->getProperties(),
'associations' => $deal->getAssociations(),
];
}
/**
* Generic batch read method for HubSpot objects
*
* @param string $objectType The object type ('deals', 'companies', 'contacts')
* @param array<string> $crmIds Array of HubSpot object IDs (max 100)
* @param array<string> $fields Array of property names to fetch
*
* @return array<string, array> Array keyed by CRM ID with object data
*/
private function batchReadObjects(string $objectType, array $crmIds, array $fields): array
{
if (empty($crmIds)) {
return [];
}
$this->validateBatchSize($objectType, $crmIds);
$this->ensureValidToken();
try {
$batchConfig = $this->createBatchConfiguration($objectType);
$batchReadRequest = $this->prepareBatchRequest($batchConfig, $crmIds, $fields);
$response = $batchConfig['api']->read($batchReadRequest);
$this->validateApiResponse($response, $objectType);
$results = $this->processApiResults($response);
$this->logBatchResults($objectType, $crmIds, $results);
return $results;
} catch (\Throwable $e) {
$this->handleBatchError($e, $objectType, $crmIds);
}
}
private function validateBatchSize(string $objectType, array $crmIds): void
{
if (count($crmIds) > 100) {
throw new \InvalidArgumentException("Batch size cannot exceed 100 {$objectType}");
}
}
private function createBatchConfiguration(string $objectType): array
{
$configurations = [
'deals' => [
'batchReadRequest' => new \HubSpot\Client\Crm\Deals\Model\BatchReadInputSimplePublicObjectId(),
'inputClass' => \HubSpot\Client\Crm\Deals\Model\SimplePublicObjectId::class,
'api' => $this->getNewInstance()->crm()->deals()->batchApi(),
],
'companies' => [
'batchReadRequest' => new \HubSpot\Client\Crm\Companies\Model\BatchReadInputSimplePublicObjectId(),
'inputClass' => \HubSpot\Client\Crm\Companies\Model\SimplePublicObjectId::class,
'api' => $this->getNewInstance()->crm()->companies()->batchApi(),
],
'contacts' => [
'batchReadRequest' => new \HubSpot\Client\Crm\Contacts\Model\BatchReadInputSimplePublicObjectId(),
'inputClass' => \HubSpot\Client\Crm\Contacts\Model\SimplePublicObjectId::class,
'api' => $this->getNewInstance()->crm()->contacts()->batchApi(),
],
];
if (! isset($configurations[$objectType])) {
throw new \InvalidArgumentException("Unsupported object type: {$objectType}");
}
return $configurations[$objectType];
}
private function prepareBatchRequest(array $batchConfig, array $crmIds, array $fields): object
{
$batchReadRequest = $batchConfig['batchReadRequest'];
$inputClass = $batchConfig['inputClass'];
$inputs = array_map(function ($crmId) use ($inputClass) {
$input = new $inputClass();
$input->setId($crmId);
return $input;
}, $crmIds);
$batchReadRequest->setInputs($inputs);
$batchReadRequest->setProperties($fields);
return $batchReadRequest;
}
private function validateApiResponse($response, string $objectType): void
{
if (! $response) {
throw new CrmException("HubSpot API returned null response for {$objectType} batch read");
}
}
private function processApiResults($response): array
{
$results = [];
$responseResults = $response->getResults();
if ($responseResults) {
foreach ($responseResults as $object) {
if ($object && $object->getId()) {
$results[$object->getId()] = [
'id' => $object->getId(),
'properties' => $object->getProperties() ?: [],
];
}
}
}
return $results;
}
private function logBatchResults(string $objectType, array $crmIds, array $results): void
{
$this->log->info("[HubSpot] Batch fetched {$objectType}", [
'requested_count' => count($crmIds),
'returned_count' => count($results),
'crm_ids' => $crmIds,
]);
}
private function handleBatchError(\Throwable $e, string $objectType, array $crmIds): void
{
$errorMessage = $e->getMessage() ?: 'Unknown error';
$errorTrace = $e->getTraceAsString() ?: 'No trace available';
$this->log->error("[HubSpot] Failed to batch fetch {$objectType}", [
'crm_ids' => $crmIds,
'error' => $errorMessage,
'trace' => $errorTrace,
]);
throw new CrmException("Failed to batch fetch {$objectType}: " . $errorMessage);
}
/**
* Batch read multiple opportunities by their CRM IDs
*
* @param array<string> $crmIds Array of HubSpot deal IDs (max 100)
* @param array<string> $fields Array of property names to fetch
*
* @return array<string, array> Array keyed by CRM ID with opportunity data
*/
public function getOpportunitiesByIds(array $crmIds, array $fields): array
{
return $this->batchReadObjects('deals', $crmIds, $fields);
}
/**
* Batch read multiple companies by their CRM IDs
*
* @param array<string> $crmIds Array of HubSpot company IDs (max 100)
* @param array<string> $fields Array of property names to fetch
*
* @return array<string, array> Array keyed by CRM ID with company data
*/
public function getCompaniesByIds(array $crmIds, array $fields): array
{
return $this->batchReadObjects('companies', $crmIds, $fields);
}
/**
* Batch read multiple contacts by their CRM IDs
*
* @param array<string> $crmIds Array of HubSpot contact IDs (max 100)
* @param array<string> $fields Array of property names to fetch
*
* @return array<string, array> Array keyed by CRM ID with contact data
*/
public function getContactsByIds(array $crmIds, array $fields): array
{
return $this->batchReadObjects('contacts', $crmIds, $fields);
}
/**
* @throws CompanyApiException
* @throws CrmException
*/
public function getAccountById(string $crmId, array $fields): array
{
try {
$company = $this->getNewInstance()->crm()->companies()->basicApi()->getById(
$crmId,
implode(',', $fields),
);
} catch (CompanyApiException $e) {
$this->log->info('[Hubspot] Failed to fetch account', [
'crm_id' => $crmId,
'reason' => $e->getMessage(),
]);
throw $e;
}
if (! $company instanceof CompaniesWithAssociations) {
throw new CrmException('Account not found');
}
return [
'id' => $company->getId(),
'properties' => $company->getProperties(),
];
}
/**
* @throws ContactApiException
* @throws CrmException
*/
public function getContactById(string $crmId, array $fields): array
{
try {
$contact = $this->getNewInstance()->crm()->contacts()->basicApi()->getById(
$crmId,
implode(',', $fields)
);
} catch (ContactApiException $e) {
$this->log->info('[Hubspot] Failed to fetch contact', [
'crm_id' => $crmId,
'reason' => $e->getMessage(),
]);
throw $e;
}
if (! $contact instanceof ContactsWithAssociations) {
throw new CrmException('Contact not found');
}
return [
'id' => $contact->getId(),
'properties' => $contact->getProperties(),
];
}
/**
* This is email search request that Hubspot offers as GET (more generous quota)
*/
public function getContactByEmail(string $email, array $fields = []): array
{
try {
$contact = $this->getNewInstance()->crm()->contacts()->basicApi()->getById(
$email,
implode(',', $fields),
null,
false,
'email'
);
return [
'id' => $contact->getId(),
'properties' => $contact->getProperties(),
];
} catch (ContactApiException $e) {
$this->log->info('[Hubspot] Failed to fetch contact', [
'email' => $email,
'reason' => $e->getMessage(),
]);
return [];
}
}
/**
* @throws CrmException
*/
public function fetchProperty(string $objectType, string $propertyId): Property
{
$result = $this->getNewInstance()->crm()->properties()->coreApi()->getByName($objectType, $propertyId);
if (! $result instanceof Property) {
$this->log->error('[Hubspot] Failed to fetch property', [
'object_type' => $objectType,
'property_id' => $propertyId,
'reason' => $result->getMessage(),
]);
throw new CrmException('Failed to fetch property');
}
return $result;
}
/**
* @return array<CrmFieldOption>
*/
public function fetchPropertyOptions(string $objectType, string $propertyId): array
{
/** @var array<CrmFieldOption> */
return $this->fetchProperty($objectType, $propertyId)->getOptions();
}
/**
* @return array<array{id:string, label:string, deleted:bool}>
*/
public function fetchCallDispositions(): array
{
/** @var Response $response */
$response = $this->getInstance()->engagements()->getCallDispositions();
/**
* @var array<array{
* id:string,
* label:string,
* deleted: bool
* }>
*/
return $response->toArray();
}
/**
* @return array<CrmFieldOption>
*/
public function fetchOpportunityPipelineStages(): array
{
$stages = [];
$apiResponse = $this->getNewInstance()->crm()->pipelines()->pipelinesApi()->getAll('deals');
if ($apiResponse instanceof Error) {
$this->log->error('[Hubspot] Failed to fetch opportunity pipelines', [
'reason' => $apiResponse->getMessage(),
]);
return [];
}
foreach ($apiResponse->getResults() as $pipeline) {
$pipelineStages = array_map(
static function (PipelineStage $stage) {
return [
'id' => $stage->getId(),
'label' => $stage->getLabel(),
];
},
$pipeline->getStages()
);
$stages = array_merge($stages, $pipelineStages);
}
return $stages;
}
public function fetchOpportunityPipelines(): array
{
$pipelines = [];
try {
$apiResponse = $this->makeRequest('/crm/v3/pipelines/deals');
} catch (\Exception $e) {
$this->log->info('[Hubspot] Failed to fetch opportunity pipelines', [
'reason' => $e->getMessage(),
]);
return [];
}
$response = $apiResponse->toArray();
foreach ($response['results'] as $pipeline) {
$pipelines[] = [
'id' => $pipeline['id'],
'label' => $pipeline['label'],
];
}
return $pipelines;
}
/**
* @return array<CrmFieldOption>
*/
public function fetchMeetingOutcomeFieldOptions(Field $field): array
{
return $field->getCrmProviderId() === 'meetingOutcome'
? $this->fetchMeetingOutcomeTypes()
: $this->fetchCallActivityTypes();
}
public function fetchMeetingOutcomeTypes(): array
{
return $this->extractMeetingTypeOptions(
'[URL_WITH_CREDENTIALS] Response $response */
$response = $this->getInstance()
->getClient()
->request('GET', $endpoint);
/**
* @var array<array{
* value: string,
* label: string,
* displayOrder: int
* }> $optionData
*/
$optionData = $response->toArray()['options'] ?? [];
$options = [];
foreach ($optionData as $item) {
$options[] = [
'id' => $item['value'],
'value' => $item['value'],
'label' => $item['label'],
'display_order' => $item['displayOrder'],
];
}
return $options;
}
/**
* @return array<CrmFieldOption>
*/
public function fetchDispositionFieldOptions(): array
{
$options = [];
$dispositions = $this->fetchCallDispositions();
foreach ($dispositions as $disposition) {
if ($disposition['deleted'] !== false) {
continue;
}
$option['value'] = $disposition['id'];
$option['id'] = $disposition['id'];
$option['label'] = $disposition['label'];
$options[] = $option;
}
return $options;
}
/**
* @return array<CrmFieldOption>
*/
public function fetchOpportunityFieldOptions(Field $field): array
{
if ($field->isStageField()) {
return $this->fetchOpportunityPipelineStages();
}
if ($field->isPipelineField()) {
return $this->fetchOpportunityPipelines();
}
return $this->fetchPropertyOptions('deals', $field->getCrmProviderId());
}
/**
* @throws BadRequest
* @throws HubspotException
*/
public function makeRequest(string $endpoint, $method = 'GET', $payload = [], ?string $queryString = null)
{
$endpoint = self::BASE_URL . $endpoint;
if ($method === 'GET') {
return $this->getInstance()->getClient()?->request(
method: $method,
endpoint: $endpoint,
query_string: $queryString
);
} else {
return $this->getInstance()->getClient()->request($method, $endpoint, [
'json' => ($payload),
]);
}
}
/**
* @throws BadRequest
* @throws HubspotException
*/
public function createMeeting(array $payload): Response
{
$endpoint = '/crm/v3/objects/meetings';
return $this->makeRequest($endpoint, 'POST', $payload);
}
/**
* @throws BadRequest
* @throws HubspotException
*/
public function updateMeeting(string $meetingId, array $payload): Response
{
$endpoint = '/crm/v3/objects/meetings/' . $meetingId;
return $this->makeRequest($endpoint, 'PATCH', $payload);
}
/**
* @throws \Exception
*/
public function createNote(
string $body,
string $ownerId,
int $timestamp,
string $objectId,
NoteObject $noteObject
): ?string {
try {
$noteInput = new SimplePublicObjectInput([
'properties' => [
'hs_note_body' => $body,
'hubspot_owner_id' => $ownerId,
'hs_timestamp' => $timestamp,
],
]);
// Create note
$note = $this->getNewInstance()->crm()->objects()->basicApi()->create('note', $noteInput);
$this->getNewInstance()->crm()->objects()->associationsApi()->create(
'note',
$note->getId(),
$this->getNoteObject($noteObject),
$objectId,
$this->getNoteAssociationType($noteObject),
);
return $note->getId();
} catch (\Exception $e) {
$this->log->error('[Hubspot] Failed to create note', [
'objectId' => $objectId,
'noteObject' => $noteObject->getObjectType(),
'reason' => $e->getMessage(),
]);
\Sentry::captureException($e);
}
return null;
}
public function updateEngagement(string $objectId, array $engagement, array $metadata): void
{
$this->getInstance()->engagements()->update($objectId, $engagement, $metadata);
}
public function getEngagementData(string $engagementId): array
{
$engagement = $this->getInstance()->engagements()->get($engagementId);
return $engagement->toArray();
}
public function createEngagement(array $engagement, array $associations, array $metadata): Response
{
return $this->getInstance()
->engagements()
->create($engagement, $associations, $metadata);
}
public function isUnauthorizedException(\Exception $e): bool
{
// Check for specific HubSpot API exception types first
if ($e instanceof BadRequest) {
// BadRequest can contain 401 status codes
return $e->getCode() === 401;
}
// Check for HTTP client exceptions with status codes
if ($e instanceof \GuzzleHttp\Exception\RequestException && $e->hasResponse()) {
$response = $e->getResponse();
if ($response !== null) {
return $response->getStatusCode() === 401;
}
}
// Check for Guzzle HTTP exceptions
if ($e instanceof \GuzzleHttp\Exception\ClientException) {
return $e->getCode() === 401;
}
// Fallback to string matching as last resort, but be more specific
$message = strtolower($e->getMessage());
return str_contains($message, '401 unauthorized') ||
str_contains($message, 'http 401') ||
str_contains($message, 'status code 401') ||
(preg_match('/\b401\b/', $message) && str_contains($message, 'unauthorized'));
}
/**
* Validates and refreshes the access token if needed before API requests.
* This ensures long-running processes don't fail due to token expiration.
*
* @throws SocialAccountTokenInvalidException
*/
public function ensureValidToken(): void
{
if ($this->oauthAccount === null) {
return;
}
$newToken = $this->tokenManager->ensureValidToken($this->oauthAccount);
if ($newToken !== null) {
$this->accessToken = $newToken;
}
}
public function getConfig()
{
return $this->config;
}
// returns only active (archived=false)
public function getOwners(): array
{
return $this->getNewInstance()->crm()->owners()->getAll();
}
/**
* @param bool $archived
*
* @return array<Owner>|[]
*/
public function getOwnersArchived(bool $archived = true): array
{
$endpoint = '/crm/v3/owners';
$queryParams = [
'archived' => $archived ? 'true' : 'false',
];
$queryString = http_build_query($queryParams);
$owners = [];
try {
$response = $this->makeRequest(endpoint: $endpoint, queryString: $queryString);
$responseData = $response?->toArray();
foreach ($responseData['results'] as $result) {
try {
$owners[] = Owner::create($result);
} catch (Throwable $e) {
$this->log->error('[HubSpot] Failed to process owner data', [
'result' => $result,
'error' => $e->getMessage(),
]);
continue;
}
}
} catch (Throwable $e) {
$this->log->error('HubSpot] Failed to fetch owners', [
'archived' => $archived,
'error' => $e->getMessage(),
]);
return [];
}
return $owners;
}
public function getMeeting(string $engagementId): ObjectWithAssociations
{
return $this->getNewInstance()->crm()->objects()->basicApi()
->getById('meeting', $engagementId, null, 'contact,company,deal');
}
public function deleteEngagement(string $engagementId): void
{
$this->getInstance()->engagements()->delete((int) $engagementId);
}
public function getAssociationsData(array $ids, string $fromObject, string $toObject): array
{
$associationData = [];
$idChunks = array_chunk($ids, self::ASSOCIATIONS_BATCH_SIZE_LIMIT);
foreach ($idChunks as $idChunk) {
try {
$batchInput = new \HubSpot\Client\Crm\Associations\Model\BatchInputPublicObjectId();
$batchInput->setInputs(array_map(function ($id) {
$publicObjectId = new \HubSpot\Client\Crm\Associations\Model\PublicObjectId();
$publicObjectId->setId($id);
return $publicObjectId;
}, $idChunk));
$associatedObjectsData = $this
->getNewInstance()
->crm()
->associations()
->batchApi()
->read($fromObject, $toObject, $batchInput);
if ($associatedObjectsData instanceof \HubSpot\Client\Crm\Associations\Model\BatchResponsePublicAssociationMulti) {
foreach ($associatedObjectsData->getResults() as $association) {
$from = $association->getFrom()->getId();
$toAssociations = $association->getTo();
if (! empty($toAssociations)) {
$associationData[$from] = array_map(function ($item) {
return $item->getId();
}, $toAssociations);
}
}
}
// } catch (RateLimitException $e) {
// throw $e;
} catch (\Exception $e) {
$this->log->error('[Hubspot] Failed to fetch associations', [
'from_object' => $fromObject,
'to_object' => $toObject,
'reason' => $e->getMessage(),
]);
}
}
return $associationData;
}
/**
* @throws \Exception
*/
private function getNoteAssociationType(NoteObject $noteObject): string
{
return match($noteObject) {
NoteObject::Opportunity => 'note_to_deal',
NoteObject::Lead, NoteObject::Contact => 'note_to_contact', // or 'note_to_lead' if your portal supports it
NoteObject::Account => 'note_to_company',
NoteObject::Call, NoteObject::Event => throw new \Exception('Not supported'),
};
}
/**
* @throws \Exception
*/
private function getNoteObject(NoteObject $noteObject): string
{
return match($noteObject) {
NoteObject::Opportunity => 'deal',
NoteObject::Lead, NoteObject::Contact => 'contact',
NoteObject::Account => 'company',
NoteObject::Call, NoteObject::Event => throw new \Exception('Not supported'),
};
}
public function addAssociations(string $objectType, string $associationType, array $payload): Response
{
$endpoint = "/crm/v4/associations/$objectType/$associationType/batch/create";
return $this->makeRequest($endpoint, 'POST', $payload);
}
public function removeAssociations(string $objectType, string $associationType, array $payload): Response
{
$endpoint = "/crm/v4/associations/$objectType/$associationType/batch/archive";
return $this->makeRequest($endpoint, 'POST', $payload);
}
}
Show Replace Field
Search History
429
New Line
Match Case
Words
Regex
Replace History
Replace
New Line
Preserve case
1/4
Previous Occurrence
Next Occurrence
Filter Search Results
Open in Window, Multiple Cursors
Click to highlight
Close
Sync Changes
Hide This Notification
Code changed:
Hide
54
Previous Highlighted Error
Next Highlighted Error
[2026-05-11 11:08:45] local.INFO: Jiminny\Console\Commands\Command::run Memory usage before starting command {"command":"mailbox:batch:retry-failed","memoryBeforeCommandInMb":60.0,"memoryPeakBeforeCommandInMb":99.727} {"correlation_id":"43b1fb67-9aac-4fc6-9ced-689ecda5c548","trace_id":"60028d0e-dcd8-496a-a7ba-3a04b8d646e2"}
[2026-05-11 11:08:45] local.INFO: [Commands/AsyncUpdateEsEntities] Starting ES update worker {"pid":72650,"workerId":"","target":"activities"} {"correlation_id":"6d49ffdc-2ed7-4eae-a1ee-e25ca95bbea8","trace_id":"906573b5-005c-4820-8a32-3b0703ea86dd"}
[2026-05-11 11:08:46] local.INFO: Jiminny\Console\Commands\Command::run Memory usage for command {"command":"mailbox:batch:retry-failed","memoryBeforeCommandInMb":60.0,"memoryAfterCommandInMB":60.0,"memoryPeakBeforeCommandInMb":99.727,"memoryPeakAfterCommandInMB":99.727} {"correlation_id":"43b1fb67-9aac-4fc6-9ced-689ecda5c548","trace_id":"60028d0e-dcd8-496a-a7ba-3a04b8d646e2"}
[2026-05-11 11:09:12] local.INFO: [MatchActivityCrmData] Starting CRM data matching {"activity":615092,"remote_search":true,"set_configuration":2,"old_state":{"lead_id":null,"contact_id":null,"account_id":26,"opportunity_id":22,"stage_id":89}} {"correlation_id":"f33d47cb-76c6-4c27-a641-48cbf69e623d","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:12] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":615092} {"correlation_id":"f33d47cb-76c6-4c27-a641-48cbf69e623d","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:12] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":615092,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"f33d47cb-76c6-4c27-a641-48cbf69e623d","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:12] local.INFO: [MatchActivityCrmData] Participants old state {"activity":615092,"participants":[{"id":1004102,"user_id":null,"contact_id":null,"lead_id":null},{"id":1004103,"user_id":89,"contact_id":null,"lead_id":null}]} {"correlation_id":"f33d47cb-76c6-4c27-a641-48cbf69e623d","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:12] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"f33d47cb-76c6-4c27-a641-48cbf69e623d","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:12] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"f33d47cb-76c6-4c27-a641-48cbf69e623d","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:12] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"f33d47cb-76c6-4c27-a641-48cbf69e623d","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:12] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"f33d47cb-76c6-4c27-a641-48cbf69e623d","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:12] local.INFO: [Prospect match] Cache miss, calling the API {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"f33d47cb-76c6-4c27-a641-48cbf69e623d","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:13] local.INFO: [Hubspot] Failed to fetch contact {"email":"[EMAIL]","reason":"[404] Client error: `GET https://api.hubapi.com/crm/v3/objects/contacts/nikolay.nikolov%40jiminny.com?properties=email%2Cfirstname%2Clastname%2Ccountry%2Cphone%2Cmobilephone%2Cjobtitle%2Chubspot_owner_id%2Cassociatedcompanyid%2Cphoto&archived=0&idProperty=email` resulted in a `404 Not Found` response"} {"correlation_id":"f33d47cb-76c6-4c27-a641-48cbf69e623d","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:13] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"f33d47cb-76c6-4c27-a641-48cbf69e623d","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:13] local.WARNING: [Hubspot] No retry-after header or known message, using default {"exception_class":"SevenShores\\Hubspot\\Exceptions\\BadRequest","message":""} {"correlation_id":"f33d47cb-76c6-4c27-a641-48cbf69e623d","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:13] local.WARNING: [Hubspot] Received 429 from API {"team_id":2,"config_id":2,"retry_after":10,"message":"","reason":"Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response:
{\"status\":\"error\",\"message\":\"You have reached your secondly limit.\",\"errorType\":\"RATE_LIMIT\",\"correlationId\":\"019e16ba-1 (truncated...)
"} {"correlation_id":"f33d47cb-76c6-4c27-a641-48cbf69e623d","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:13] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":10,"delay":12} {"correlation_id":"f33d47cb-76c6-4c27-a641-48cbf69e623d","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [MatchActivityCrmData] Starting CRM data matching {"activity":614436,"remote_search":true,"set_configuration":2,"old_state":{"lead_id":null,"contact_id":null,"account_id":26,"opportunity_id":22,"stage_id":89}} {"correlation_id":"ccafe863-7885-4971-96fb-87ef6dd4adf3","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":614436} {"correlation_id":"ccafe863-7885-4971-96fb-87ef6dd4adf3","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":614436,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"ccafe863-7885-4971-96fb-87ef6dd4adf3","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [MatchActivityCrmData] Participants old state {"activity":614436,"participants":[{"id":1002751,"user_id":null,"contact_id":null,"lead_id":null},{"id":1002752,"user_id":89,"contact_id":null,"lead_id":null}]} {"correlation_id":"ccafe863-7885-4971-96fb-87ef6dd4adf3","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"ccafe863-7885-4971-96fb-87ef6dd4adf3","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"ccafe863-7885-4971-96fb-87ef6dd4adf3","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"ccafe863-7885-4971-96fb-87ef6dd4adf3","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"ccafe863-7885-4971-96fb-87ef6dd4adf3","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [Prospect match] Cache / local search hit {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"ccafe863-7885-4971-96fb-87ef6dd4adf3","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"ccafe863-7885-4971-96fb-87ef6dd4adf3","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":10,"delay":10} {"correlation_id":"ccafe863-7885-4971-96fb-87ef6dd4adf3","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [MatchActivityCrmData] Starting CRM data matching {"activity":614382,"remote_search":true,"set_configuration":2,"old_state":{"lead_id":null,"contact_id":null,"account_id":26,"opportunity_id":22,"stage_id":89}} {"correlation_id":"f00a4506-adfe-4fdc-b932-e6d2bc751fde","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":614382} {"correlation_id":"f00a4506-adfe-4fdc-b932-e6d2bc751fde","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":614382,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"f00a4506-adfe-4fdc-b932-e6d2bc751fde","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [MatchActivityCrmData] Participants old state {"activity":614382,"participants":[{"id":1002632,"user_id":null,"contact_id":null,"lead_id":null},{"id":1002633,"user_id":89,"contact_id":null,"lead_id":null}]} {"correlation_id":"f00a4506-adfe-4fdc-b932-e6d2bc751fde","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"f00a4506-adfe-4fdc-b932-e6d2bc751fde","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"f00a4506-adfe-4fdc-b932-e6d2bc751fde","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"f00a4506-adfe-4fdc-b932-e6d2bc751fde","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"f00a4506-adfe-4fdc-b932-e6d2bc751fde","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [Prospect match] Cache / local search hit {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"f00a4506-adfe-4fdc-b932-e6d2bc751fde","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"f00a4506-adfe-4fdc-b932-e6d2bc751fde","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":10,"delay":12} {"correlation_id":"f00a4506-adfe-4fdc-b932-e6d2bc751fde","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [MatchActivityCrmData] Starting CRM data matching {"activity":614381,"remote_search":true,"set_configuration":2,"old_state":{"lead_id":null,"contact_id":null,"account_id":26,"opportunity_id":22,"stage_id":89}} {"correlation_id":"36bd73f5-17f9-4f70-8254-2214543c7f8e","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":614381} {"correlation_id":"36bd73f5-17f9-4f70-8254-2214543c7f8e","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":614381,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"36bd73f5-17f9-4f70-8254-2214543c7f8e","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [MatchActivityCrmData] Participants old state {"activity":614381,"participants":[{"id":1002630,"user_id":null,"contact_id":null,"lead_id":null},{"id":1002631,"user_id":89,"contact_id":null,"lead_id":null}]} {"correlation_id":"36bd73f5-17f9-4f70-8254-2214543c7f8e","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"36bd73f5-17f9-4f70-8254-2214543c7f8e","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"36bd73f5-17f9-4f70-8254-2214543c7f8e","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"36bd73f5-17f9-4f70-8254-2214543c7f8e","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"36bd73f5-17f9-4f70-8254-2214543c7f8e","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [Prospect match] Cache / local search hit {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"36bd73f5-17f9-4f70-8254-2214543c7f8e","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"36bd73f5-17f9-4f70-8254-2214543c7f8e","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":10,"delay":10} {"correlation_id":"36bd73f5-17f9-4f70-8254-2214543c7f8e","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:15] local.INFO: [MatchActivityCrmData] Starting CRM data matching {"activity":614378,"remote_search":true,"set_configuration":2,"old_state":{"lead_id":null,"contact_id":6167,"account_id":null,"opportunity_id":null,"stage_id":null}} {"correlation_id":"a4a3a058-ec22-4f04-bb14-a9bff18ce214","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:15] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":614378} {"correlation_id":"a4a3a058-ec22-4f04-bb14-a9bff18ce214","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:15] local.INFO: [ AsyncU...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
18354
|
793
|
31
|
2026-05-11T11:12:49.513742+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778497969513_m2.jpg...
|
PhpStorm
|
faVsco.js – Client.php
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
JY-20725-handle-HS-search Project: faVsco.js, menu
JY-20725-handle-HS-search-rate-limit, menu
Start Listening for PHP Debug Connections
HandleHubspotRateLimitTest
Run 'HandleHubspotRateLimitTest'
Debug 'HandleHubspotRateLimitTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
1
2
67
3
Previous Highlighted Error
Next Highlighted Error
<?php
declare(strict_types=1);
namespace Jiminny\Services\Crm\Hubspot;
use HubSpot\Client\Crm\Deals\ApiException as DealApiException;
use HubSpot\Client\Crm\Contacts\ApiException as ContactApiException;
use HubSpot\Client\Crm\Companies\ApiException as CompanyApiException;
use HubSpot\Client\Crm\Contacts\Model\SimplePublicObjectWithAssociations as ContactsWithAssociations;
use HubSpot\Client\Crm\Companies\Model\SimplePublicObjectWithAssociations as CompaniesWithAssociations;
use HubSpot\Client\Crm\Deals\Model\SimplePublicObjectWithAssociations as DealWithAssociations;
use HubSpot\Client\Crm\Objects\Model\SimplePublicObjectInput;
use HubSpot\Client\Crm\Objects\Model\SimplePublicObjectWithAssociations as ObjectWithAssociations;
use HubSpot\Client\Crm\Pipelines\Model\Error;
use HubSpot\Client\Crm\Pipelines\Model\PipelineStage;
use HubSpot\Client\Crm\Properties\Model\Property;
use HubSpot\Discovery\Discovery;
use Jiminny\Exceptions\CrmException;
use Jiminny\Exceptions\RateLimitException;
use Jiminny\Exceptions\SocialAccountTokenInvalidException;
use Jiminny\Jobs\Crm\NoteObject;
use Jiminny\Models\Crm\Field;
use Jiminny\Services\Crm\BaseClient;
use Jiminny\Services\Crm\Hubspot\DTO\Response\Owner;
use Jiminny\Services\SocialAccountService;
use SevenShores\Hubspot\Exceptions\BadRequest;
use SevenShores\Hubspot\Exceptions\HubspotException;
use SevenShores\Hubspot\Factory;
use SevenShores\Hubspot\Http\Response;
use Jiminny\Services\Crm\Hubspot\Pagination\HubspotPaginationService;
use Illuminate\Support\Facades\Redis;
use Throwable;
/**
* @phpstan-type CrmFieldOption array{id:string, label:string, value?:string}
*/
class Client extends BaseClient implements HubspotClientInterface
{
public const string MIN_API_VERSION = '2';
public const string BASE_URL = '[URL_WITH_CREDENTIALS] T
* @param callable(): T $apiCall
* @return T
*
* @throws RateLimitException
*/
private function executeRequest(callable $apiCall)
{
$cacheKey = $this->getRateLimitCacheKey();
$cachedRetryAfter = Redis::get($cacheKey);
if (is_string($cachedRetryAfter) && is_numeric($cachedRetryAfter)) {
throw new RateLimitException(
'Hubspot rate limit (cached circuit-breaker)',
(int) $cachedRetryAfter,
);
}
try {
return $apiCall();
} catch (Throwable $e) {
if ($this->isHubspotRateLimit($e)) {
$retryAfter = $this->parseRetryAfter($e);
Redis::setex($cacheKey, $retryAfter, (string) $retryAfter);
$this->log->warning('[Hubspot] Received 429 from API', [
'team_id' => $this->config->team_id,
'config_id' => $this->config->getId(),
'retry_after' => $retryAfter,
'reason' => $e->getMessage(),
]);
throw new RateLimitException('Hubspot returned 429', $retryAfter, $e);
}
throw $e;
}
}
private function getRateLimitCacheKey(): string
{
return sprintf('hubspot:ratelimit:portal:%d', $this->config->getId());
}
public function isHubspotRateLimit(Throwable $e): bool
{
if ($e instanceof BadRequest
|| $e instanceof DealApiException
|| $e instanceof ContactApiException
|| $e instanceof CompanyApiException
|| $e instanceof \GuzzleHttp\Exception\RequestException
) {
return (int) $e->getCode() === 429;
}
return false;
}
public function parseRetryAfter(Throwable $e): int
{
if (method_exists($e, 'getResponseHeaders')) {
$headers = $e->getResponseHeaders() ?: [];
$value = $headers['Retry-After'] ?? $headers['retry-after'] ?? null;
if (is_array($value)) {
$value = $value[0] ?? null;
}
if (is_numeric($value)) {
return (int) $value;
}
}
$message = strtolower($e->getMessage());
if (str_contains($message, 'daily')) {
return 600;
}
if (str_contains($message, 'ten secondly')) {
return 10;
}
if (str_contains($message, 'secondly')) {
return 1;
}
$this->log->warning('[Hubspot] No retry-after header or known message, using default', [
'exception_class' => get_class($e),
'message' => $message,
]);
return 10;
}
public function parseMessage(Throwable $e): string
{
if (! method_exists($e, 'getResponseBody')) {
return '';
}
$body = $e->getResponseBody();
if (is_string($body)) {
$body = json_decode($body, true) ?? [];
}
if (! is_array($body)) {
return '';
}
return (string) ($body['message'] ?? '');
}
public function getMinimumApiVersion(): string
{
return self::MIN_API_VERSION;
}
public function getInstance(): Factory
{
return new Factory([
'key' => $this->accessToken,
'oauth2' => true,
'base_url' => $this->baseUrl,
]);
}
public function getNewInstance(): Discovery
{
return \HubSpot\Factory::createWithAccessToken($this->accessToken);
}
/**
* Secondly and daily limits for Hubspot API
*
* Product Tier: Free & Starter | Professional & Enterprise | API add-on (any tier)
* Burst: 100/10 seconds | 150/10 seconds | 200/10 seconds
* Daily: 250,000 | 500,000 | 1,000,000
*
* Official documentation states: The search endpoints are rate limited to five requests per second.
* Since with 5 RPS were still hitting secondly rate limits we lowered it to 4
*/
public function getPaginatedData(array $payload, string $type, int $offset = 0): array
{
$total = 0;
$lastId = null;
$rows = [];
foreach ($this->getPaginatedDataGenerator($payload, $type, $offset, $total, $lastId) as $row) {
$rows[] = $row;
}
return ['results' => $rows, 'total' => $total, 'last_record' => $lastId];
}
/**
* @throws HubspotException
* @throws SocialAccountTokenInvalidException
* @throws BadRequest
*/
public function getPaginatedDataGenerator(
array $payload,
string $type,
int $offset = 0,
int &$total = 0,
?string &$lastRecordId = null
): \Generator {
return $this->paginationService->getPaginatedDataGenerator(
$this,
$payload,
$type,
$offset,
$total,
$lastRecordId
);
}
/**
* Execute a search request against HubSpot CRM objects with rate limiting.
*
* @param string $objectType The object type ('deals', 'companies', 'contacts', 'calls')
* @param array<string, mixed> $payload The search payload with filters, sorts, properties, etc.
* @return array The search response with 'results', 'total', 'paging' keys
* @throws RateLimitException When rate limit is hit
* @throws HubspotException On API errors
*/
public function search(string $objectType, array $payload): array
{
$endpoint = self::BASE_URL . "/crm/v3/objects/{$objectType}/search";
return $this->executeRequest(function () use ($endpoint, $payload) {
$response = $this->getInstance()->getClient()->request('POST', $endpoint, ['json' => $payload]);
return $response->toArray();
});
}
/**
* @throws DealApiException
* @throws CrmException
*/
public function getOpportunityById(string $crmId, array $fields): array
{
try {
$deal = $this->getNewInstance()->crm()->deals()->basicApi()->getById(
$crmId,
implode(',', $fields),
'companies,contacts'
);
} catch (DealApiException $e) {
$this->log->info('[Hubspot] Failed to fetch opportunity', [
'crm_id' => $crmId,
'reason' => $e->getMessage(),
]);
throw $e;
}
if (! $deal instanceof DealWithAssociations) {
throw new CrmException('Deal not found');
}
return [
'id' => $deal->getId(),
'properties' => $deal->getProperties(),
'associations' => $deal->getAssociations(),
];
}
/**
* Generic batch read method for HubSpot objects
*
* @param string $objectType The object type ('deals', 'companies', 'contacts')
* @param array<string> $crmIds Array of HubSpot object IDs (max 100)
* @param array<string> $fields Array of property names to fetch
*
* @return array<string, array> Array keyed by CRM ID with object data
*/
private function batchReadObjects(string $objectType, array $crmIds, array $fields): array
{
if (empty($crmIds)) {
return [];
}
$this->validateBatchSize($objectType, $crmIds);
$this->ensureValidToken();
try {
$batchConfig = $this->createBatchConfiguration($objectType);
$batchReadRequest = $this->prepareBatchRequest($batchConfig, $crmIds, $fields);
$response = $batchConfig['api']->read($batchReadRequest);
$this->validateApiResponse($response, $objectType);
$results = $this->processApiResults($response);
$this->logBatchResults($objectType, $crmIds, $results);
return $results;
} catch (\Throwable $e) {
$this->handleBatchError($e, $objectType, $crmIds);
}
}
private function validateBatchSize(string $objectType, array $crmIds): void
{
if (count($crmIds) > 100) {
throw new \InvalidArgumentException("Batch size cannot exceed 100 {$objectType}");
}
}
private function createBatchConfiguration(string $objectType): array
{
$configurations = [
'deals' => [
'batchReadRequest' => new \HubSpot\Client\Crm\Deals\Model\BatchReadInputSimplePublicObjectId(),
'inputClass' => \HubSpot\Client\Crm\Deals\Model\SimplePublicObjectId::class,
'api' => $this->getNewInstance()->crm()->deals()->batchApi(),
],
'companies' => [
'batchReadRequest' => new \HubSpot\Client\Crm\Companies\Model\BatchReadInputSimplePublicObjectId(),
'inputClass' => \HubSpot\Client\Crm\Companies\Model\SimplePublicObjectId::class,
'api' => $this->getNewInstance()->crm()->companies()->batchApi(),
],
'contacts' => [
'batchReadRequest' => new \HubSpot\Client\Crm\Contacts\Model\BatchReadInputSimplePublicObjectId(),
'inputClass' => \HubSpot\Client\Crm\Contacts\Model\SimplePublicObjectId::class,
'api' => $this->getNewInstance()->crm()->contacts()->batchApi(),
],
];
if (! isset($configurations[$objectType])) {
throw new \InvalidArgumentException("Unsupported object type: {$objectType}");
}
return $configurations[$objectType];
}
private function prepareBatchRequest(array $batchConfig, array $crmIds, array $fields): object
{
$batchReadRequest = $batchConfig['batchReadRequest'];
$inputClass = $batchConfig['inputClass'];
$inputs = array_map(function ($crmId) use ($inputClass) {
$input = new $inputClass();
$input->setId($crmId);
return $input;
}, $crmIds);
$batchReadRequest->setInputs($inputs);
$batchReadRequest->setProperties($fields);
return $batchReadRequest;
}
private function validateApiResponse($response, string $objectType): void
{
if (! $response) {
throw new CrmException("HubSpot API returned null response for {$objectType} batch read");
}
}
private function processApiResults($response): array
{
$results = [];
$responseResults = $response->getResults();
if ($responseResults) {
foreach ($responseResults as $object) {
if ($object && $object->getId()) {
$results[$object->getId()] = [
'id' => $object->getId(),
'properties' => $object->getProperties() ?: [],
];
}
}
}
return $results;
}
private function logBatchResults(string $objectType, array $crmIds, array $results): void
{
$this->log->info("[HubSpot] Batch fetched {$objectType}", [
'requested_count' => count($crmIds),
'returned_count' => count($results),
'crm_ids' => $crmIds,
]);
}
private function handleBatchError(\Throwable $e, string $objectType, array $crmIds): void
{
$errorMessage = $e->getMessage() ?: 'Unknown error';
$errorTrace = $e->getTraceAsString() ?: 'No trace available';
$this->log->error("[HubSpot] Failed to batch fetch {$objectType}", [
'crm_ids' => $crmIds,
'error' => $errorMessage,
'trace' => $errorTrace,
]);
throw new CrmException("Failed to batch fetch {$objectType}: " . $errorMessage);
}
/**
* Batch read multiple opportunities by their CRM IDs
*
* @param array<string> $crmIds Array of HubSpot deal IDs (max 100)
* @param array<string> $fields Array of property names to fetch
*
* @return array<string, array> Array keyed by CRM ID with opportunity data
*/
public function getOpportunitiesByIds(array $crmIds, array $fields): array
{
return $this->batchReadObjects('deals', $crmIds, $fields);
}
/**
* Batch read multiple companies by their CRM IDs
*
* @param array<string> $crmIds Array of HubSpot company IDs (max 100)
* @param array<string> $fields Array of property names to fetch
*
* @return array<string, array> Array keyed by CRM ID with company data
*/
public function getCompaniesByIds(array $crmIds, array $fields): array
{
return $this->batchReadObjects('companies', $crmIds, $fields);
}
/**
* Batch read multiple contacts by their CRM IDs
*
* @param array<string> $crmIds Array of HubSpot contact IDs (max 100)
* @param array<string> $fields Array of property names to fetch
*
* @return array<string, array> Array keyed by CRM ID with contact data
*/
public function getContactsByIds(array $crmIds, array $fields): array
{
return $this->batchReadObjects('contacts', $crmIds, $fields);
}
/**
* @throws CompanyApiException
* @throws CrmException
*/
public function getAccountById(string $crmId, array $fields): array
{
try {
$company = $this->getNewInstance()->crm()->companies()->basicApi()->getById(
$crmId,
implode(',', $fields),
);
} catch (CompanyApiException $e) {
$this->log->info('[Hubspot] Failed to fetch account', [
'crm_id' => $crmId,
'reason' => $e->getMessage(),
]);
throw $e;
}
if (! $company instanceof CompaniesWithAssociations) {
throw new CrmException('Account not found');
}
return [
'id' => $company->getId(),
'properties' => $company->getProperties(),
];
}
/**
* @throws ContactApiException
* @throws CrmException
*/
public function getContactById(string $crmId, array $fields): array
{
try {
$contact = $this->getNewInstance()->crm()->contacts()->basicApi()->getById(
$crmId,
implode(',', $fields)
);
} catch (ContactApiException $e) {
$this->log->info('[Hubspot] Failed to fetch contact', [
'crm_id' => $crmId,
'reason' => $e->getMessage(),
]);
throw $e;
}
if (! $contact instanceof ContactsWithAssociations) {
throw new CrmException('Contact not found');
}
return [
'id' => $contact->getId(),
'properties' => $contact->getProperties(),
];
}
/**
* This is email search request that Hubspot offers as GET (more generous quota)
*/
public function getContactByEmail(string $email, array $fields = []): array
{
try {
$contact = $this->getNewInstance()->crm()->contacts()->basicApi()->getById(
$email,
implode(',', $fields),
null,
false,
'email'
);
return [
'id' => $contact->getId(),
'properties' => $contact->getProperties(),
];
} catch (ContactApiException $e) {
$this->log->info('[Hubspot] Failed to fetch contact', [
'email' => $email,
'reason' => $e->getMessage(),
]);
return [];
}
}
/**
* @throws CrmException
*/
public function fetchProperty(string $objectType, string $propertyId): Property
{
$result = $this->getNewInstance()->crm()->properties()->coreApi()->getByName($objectType, $propertyId);
if (! $result instanceof Property) {
$this->log->error('[Hubspot] Failed to fetch property', [
'object_type' => $objectType,
'property_id' => $propertyId,
'reason' => $result->getMessage(),
]);
throw new CrmException('Failed to fetch property');
}
return $result;
}
/**
* @return array<CrmFieldOption>
*/
public function fetchPropertyOptions(string $objectType, string $propertyId): array
{
/** @var array<CrmFieldOption> */
return $this->fetchProperty($objectType, $propertyId)->getOptions();
}
/**
* @return array<array{id:string, label:string, deleted:bool}>
*/
public function fetchCallDispositions(): array
{
/** @var Response $response */
$response = $this->getInstance()->engagements()->getCallDispositions();
/**
* @var array<array{
* id:string,
* label:string,
* deleted: bool
* }>
*/
return $response->toArray();
}
/**
* @return array<CrmFieldOption>
*/
public function fetchOpportunityPipelineStages(): array
{
$stages = [];
$apiResponse = $this->getNewInstance()->crm()->pipelines()->pipelinesApi()->getAll('deals');
if ($apiResponse instanceof Error) {
$this->log->error('[Hubspot] Failed to fetch opportunity pipelines', [
'reason' => $apiResponse->getMessage(),
]);
return [];
}
foreach ($apiResponse->getResults() as $pipeline) {
$pipelineStages = array_map(
static function (PipelineStage $stage) {
return [
'id' => $stage->getId(),
'label' => $stage->getLabel(),
];
},
$pipeline->getStages()
);
$stages = array_merge($stages, $pipelineStages);
}
return $stages;
}
public function fetchOpportunityPipelines(): array
{
$pipelines = [];
try {
$apiResponse = $this->makeRequest('/crm/v3/pipelines/deals');
} catch (\Exception $e) {
$this->log->info('[Hubspot] Failed to fetch opportunity pipelines', [
'reason' => $e->getMessage(),
]);
return [];
}
$response = $apiResponse->toArray();
foreach ($response['results'] as $pipeline) {
$pipelines[] = [
'id' => $pipeline['id'],
'label' => $pipeline['label'],
];
}
return $pipelines;
}
/**
* @return array<CrmFieldOption>
*/
public function fetchMeetingOutcomeFieldOptions(Field $field): array
{
return $field->getCrmProviderId() === 'meetingOutcome'
? $this->fetchMeetingOutcomeTypes()
: $this->fetchCallActivityTypes();
}
public function fetchMeetingOutcomeTypes(): array
{
return $this->extractMeetingTypeOptions(
'[URL_WITH_CREDENTIALS] Response $response */
$response = $this->getInstance()
->getClient()
->request('GET', $endpoint);
/**
* @var array<array{
* value: string,
* label: string,
* displayOrder: int
* }> $optionData
*/
$optionData = $response->toArray()['options'] ?? [];
$options = [];
foreach ($optionData as $item) {
$options[] = [
'id' => $item['value'],
'value' => $item['value'],
'label' => $item['label'],
'display_order' => $item['displayOrder'],
];
}
return $options;
}
/**
* @return array<CrmFieldOption>
*/
public function fetchDispositionFieldOptions(): array
{
$options = [];
$dispositions = $this->fetchCallDispositions();
foreach ($dispositions as $disposition) {
if ($disposition['deleted'] !== false) {
continue;
}
$option['value'] = $disposition['id'];
$option['id'] = $disposition['id'];
$option['label'] = $disposition['label'];
$options[] = $option;
}
return $options;
}
/**
* @return array<CrmFieldOption>
*/
public function fetchOpportunityFieldOptions(Field $field): array
{
if ($field->isStageField()) {
return $this->fetchOpportunityPipelineStages();
}
if ($field->isPipelineField()) {
return $this->fetchOpportunityPipelines();
}
return $this->fetchPropertyOptions('deals', $field->getCrmProviderId());
}
/**
* @throws BadRequest
* @throws HubspotException
*/
public function makeRequest(string $endpoint, $method = 'GET', $payload = [], ?string $queryString = null)
{
$endpoint = self::BASE_URL . $endpoint;
if ($method === 'GET') {
return $this->getInstance()->getClient()?->request(
method: $method,
endpoint: $endpoint,
query_string: $queryString
);
} else {
return $this->getInstance()->getClient()->request($method, $endpoint, [
'json' => ($payload),
]);
}
}
/**
* @throws BadRequest
* @throws HubspotException
*/
public function createMeeting(array $payload): Response
{
$endpoint = '/crm/v3/objects/meetings';
return $this->makeRequest($endpoint, 'POST', $payload);
}
/**
* @throws BadRequest
* @throws HubspotException
*/
public function updateMeeting(string $meetingId, array $payload): Response
{
$endpoint = '/crm/v3/objects/meetings/' . $meetingId;
return $this->makeRequest($endpoint, 'PATCH', $payload);
}
/**
* @throws \Exception
*/
public function createNote(
string $body,
string $ownerId,
int $timestamp,
string $objectId,
NoteObject $noteObject
): ?string {
try {
$noteInput = new SimplePublicObjectInput([
'properties' => [
'hs_note_body' => $body,
'hubspot_owner_id' => $ownerId,
'hs_timestamp' => $timestamp,
],
]);
// Create note
$note = $this->getNewInstance()->crm()->objects()->basicApi()->create('note', $noteInput);
$this->getNewInstance()->crm()->objects()->associationsApi()->create(
'note',
$note->getId(),
$this->getNoteObject($noteObject),
$objectId,
$this->getNoteAssociationType($noteObject),
);
return $note->getId();
} catch (\Exception $e) {
$this->log->error('[Hubspot] Failed to create note', [
'objectId' => $objectId,
'noteObject' => $noteObject->getObjectType(),
'reason' => $e->getMessage(),
]);
\Sentry::captureException($e);
}
return null;
}
public function updateEngagement(string $objectId, array $engagement, array $metadata): void
{
$this->getInstance()->engagements()->update($objectId, $engagement, $metadata);
}
public function getEngagementData(string $engagementId): array
{
$engagement = $this->getInstance()->engagements()->get($engagementId);
return $engagement->toArray();
}
public function createEngagement(array $engagement, array $associations, array $metadata): Response
{
return $this->getInstance()
->engagements()
->create($engagement, $associations, $metadata);
}
public function isUnauthorizedException(\Exception $e): bool
{
// Check for specific HubSpot API exception types first
if ($e instanceof BadRequest) {
// BadRequest can contain 401 status codes
return $e->getCode() === 401;
}
// Check for HTTP client exceptions with status codes
if ($e instanceof \GuzzleHttp\Exception\RequestException && $e->hasResponse()) {
$response = $e->getResponse();
if ($response !== null) {
return $response->getStatusCode() === 401;
}
}
// Check for Guzzle HTTP exceptions
if ($e instanceof \GuzzleHttp\Exception\ClientException) {
return $e->getCode() === 401;
}
// Fallback to string matching as last resort, but be more specific
$message = strtolower($e->getMessage());
return str_contains($message, '401 unauthorized') ||
str_contains($message, 'http 401') ||
str_contains($message, 'status code 401') ||
(preg_match('/\b401\b/', $message) && str_contains($message, 'unauthorized'));
}
/**
* Validates and refreshes the access token if needed before API requests.
* This ensures long-running processes don't fail due to token expiration.
*
* @throws SocialAccountTokenInvalidException
*/
public function ensureValidToken(): void
{
if ($this->oauthAccount === null) {
return;
}
$newToken = $this->tokenManager->ensureValidToken($this->oauthAccount);
if ($newToken !== null) {
$this->accessToken = $newToken;
}
}
public function getConfig()
{
return $this->config;
}
// returns only active (archived=false)
public function getOwners(): array
{
return $this->getNewInstance()->crm()->owners()->getAll();
}
/**
* @param bool $archived
*
* @return array<Owner>|[]
*/
public function getOwnersArchived(bool $archived = true): array
{
$endpoint = '/crm/v3/owners';
$queryParams = [
'archived' => $archived ? 'true' : 'false',
];
$queryString = http_build_query($queryParams);
$owners = [];
try {
$response = $this->makeRequest(endpoint: $endpoint, queryString: $queryString);
$responseData = $response?->toArray();
foreach ($responseData['results'] as $result) {
try {
$owners[] = Owner::create($result);
} catch (Throwable $e) {
$this->log->error('[HubSpot] Failed to process owner data', [
'result' => $result,
'error' => $e->getMessage(),
]);
continue;
}
}
} catch (Throwable $e) {
$this->log->error('HubSpot] Failed to fetch owners', [
'archived' => $archived,
'error' => $e->getMessage(),
]);
return [];
}
return $owners;
}
public function getMeeting(string $engagementId): ObjectWithAssociations
{
return $this->getNewInstance()->crm()->objects()->basicApi()
->getById('meeting', $engagementId, null, 'contact,company,deal');
}
public function deleteEngagement(string $engagementId): void
{
$this->getInstance()->engagements()->delete((int) $engagementId);
}
public function getAssociationsData(array $ids, string $fromObject, string $toObject): array
{
$associationData = [];
$idChunks = array_chunk($ids, self::ASSOCIATIONS_BATCH_SIZE_LIMIT);
foreach ($idChunks as $idChunk) {
try {
$batchInput = new \HubSpot\Client\Crm\Associations\Model\BatchInputPublicObjectId();
$batchInput->setInputs(array_map(function ($id) {
$publicObjectId = new \HubSpot\Client\Crm\Associations\Model\PublicObjectId();
$publicObjectId->setId($id);
return $publicObjectId;
}, $idChunk));
$associatedObjectsData = $this
->getNewInstance()
->crm()
->associations()
->batchApi()
->read($fromObject, $toObject, $batchInput);
if ($associatedObjectsData instanceof \HubSpot\Client\Crm\Associations\Model\BatchResponsePublicAssociationMulti) {
foreach ($associatedObjectsData->getResults() as $association) {
$from = $association->getFrom()->getId();
$toAssociations = $association->getTo();
if (! empty($toAssociations)) {
$associationData[$from] = array_map(function ($item) {
return $item->getId();
}, $toAssociations);
}
}
}
// } catch (RateLimitException $e) {
// throw $e;
} catch (\Exception $e) {
$this->log->error('[Hubspot] Failed to fetch associations', [
'from_object' => $fromObject,
'to_object' => $toObject,
'reason' => $e->getMessage(),
]);
}
}
return $associationData;
}
/**
* @throws \Exception
*/
private function getNoteAssociationType(NoteObject $noteObject): string
{
return match($noteObject) {
NoteObject::Opportunity => 'note_to_deal',
NoteObject::Lead, NoteObject::Contact => 'note_to_contact', // or 'note_to_lead' if your portal supports it
NoteObject::Account => 'note_to_company',
NoteObject::Call, NoteObject::Event => throw new \Exception('Not supported'),
};
}
/**
* @throws \Exception
*/
private function getNoteObject(NoteObject $noteObject): string
{
return match($noteObject) {
NoteObject::Opportunity => 'deal',
NoteObject::Lead, NoteObject::Contact => 'contact',
NoteObject::Account => 'company',
NoteObject::Call, NoteObject::Event => throw new \Exception('Not supported'),
};
}
public function addAssociations(string $objectType, string $associationType, array $payload): Response
{
$endpoint = "/crm/v4/associations/$objectType/$associationType/batch/create";
return $this->makeRequest($endpoint, 'POST', $payload);
}
public function removeAssociations(string $objectType, string $associationType, array $payload): Response
{
$endpoint = "/crm/v4/associations/$objectType/$associationType/batch/archive";
return $this->makeRequest($endpoint, 'POST', $payload);
}
}
Show Replace Field
Search History
429
New Line
Match Case
Words
Regex
Replace History
Replace
New Line
Preserve case
1/4
Previous Occurrence
Next Occurrence
Filter Search Results
Open in Window, Multiple Cursors
Click to highlight
Close
Sync Changes
Hide This Notification
Code changed:
Hide
54
Previous Highlighted Error
Next Highlighted Error
[2026-05-11 11:08:45] local.INFO: Jiminny\Console\Commands\Command::run Memory usage before starting command {"command":"mailbox:batch:retry-failed","memoryBeforeCommandInMb":60.0,"memoryPeakBeforeCommandInMb":99.727} {"correlation_id":"43b1fb67-9aac-4fc6-9ced-689ecda5c548","trace_id":"60028d0e-dcd8-496a-a7ba-3a04b8d646e2"}
[2026-05-11 11:08:45] local.INFO: [Commands/AsyncUpdateEsEntities] Starting ES update worker {"pid":72650,"workerId":"","target":"activities"} {"correlation_id":"6d49ffdc-2ed7-4eae-a1ee-e25ca95bbea8","trace_id":"906573b5-005c-4820-8a32-3b0703ea86dd"}
[2026-05-11 11:08:46] local.INFO: Jiminny\Console\Commands\Command::run Memory usage for command {"command":"mailbox:batch:retry-failed","memoryBeforeCommandInMb":60.0,"memoryAfterCommandInMB":60.0,"memoryPeakBeforeCommandInMb":99.727,"memoryPeakAfterCommandInMB":99.727} {"correlation_id":"43b1fb67-9aac-4fc6-9ced-689ecda5c548","trace_id":"60028d0e-dcd8-496a-a7ba-3a04b8d646e2"}
[2026-05-11 11:09:12] local.INFO: [MatchActivityCrmData] Starting CRM data matching {"activity":615092,"remote_search":true,"set_configuration":2,"old_state":{"lead_id":null,"contact_id":null,"account_id":26,"opportunity_id":22,"stage_id":89}} {"correlation_id":"f33d47cb-76c6-4c27-a641-48cbf69e623d","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:12] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":615092} {"correlation_id":"f33d47cb-76c6-4c27-a641-48cbf69e623d","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:12] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":615092,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"f33d47cb-76c6-4c27-a641-48cbf69e623d","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:12] local.INFO: [MatchActivityCrmData] Participants old state {"activity":615092,"participants":[{"id":1004102,"user_id":null,"contact_id":null,"lead_id":null},{"id":1004103,"user_id":89,"contact_id":null,"lead_id":null}]} {"correlation_id":"f33d47cb-76c6-4c27-a641-48cbf69e623d","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:12] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"f33d47cb-76c6-4c27-a641-48cbf69e623d","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:12] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"f33d47cb-76c6-4c27-a641-48cbf69e623d","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:12] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"f33d47cb-76c6-4c27-a641-48cbf69e623d","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:12] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"f33d47cb-76c6-4c27-a641-48cbf69e623d","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:12] local.INFO: [Prospect match] Cache miss, calling the API {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"f33d47cb-76c6-4c27-a641-48cbf69e623d","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:13] local.INFO: [Hubspot] Failed to fetch contact {"email":"[EMAIL]","reason":"[404] Client error: `GET https://api.hubapi.com/crm/v3/objects/contacts/nikolay.nikolov%40jiminny.com?properties=email%2Cfirstname%2Clastname%2Ccountry%2Cphone%2Cmobilephone%2Cjobtitle%2Chubspot_owner_id%2Cassociatedcompanyid%2Cphoto&archived=0&idProperty=email` resulted in a `404 Not Found` response"} {"correlation_id":"f33d47cb-76c6-4c27-a641-48cbf69e623d","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:13] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"f33d47cb-76c6-4c27-a641-48cbf69e623d","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:13] local.WARNING: [Hubspot] No retry-after header or known message, using default {"exception_class":"SevenShores\\Hubspot\\Exceptions\\BadRequest","message":""} {"correlation_id":"f33d47cb-76c6-4c27-a641-48cbf69e623d","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:13] local.WARNING: [Hubspot] Received 429 from API {"team_id":2,"config_id":2,"retry_after":10,"message":"","reason":"Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response:
{\"status\":\"error\",\"message\":\"You have reached your secondly limit.\",\"errorType\":\"RATE_LIMIT\",\"correlationId\":\"019e16ba-1 (truncated...)
"} {"correlation_id":"f33d47cb-76c6-4c27-a641-48cbf69e623d","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:13] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":10,"delay":12} {"correlation_id":"f33d47cb-76c6-4c27-a641-48cbf69e623d","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [MatchActivityCrmData] Starting CRM data matching {"activity":614436,"remote_search":true,"set_configuration":2,"old_state":{"lead_id":null,"contact_id":null,"account_id":26,"opportunity_id":22,"stage_id":89}} {"correlation_id":"ccafe863-7885-4971-96fb-87ef6dd4adf3","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":614436} {"correlation_id":"ccafe863-7885-4971-96fb-87ef6dd4adf3","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":614436,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"ccafe863-7885-4971-96fb-87ef6dd4adf3","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [MatchActivityCrmData] Participants old state {"activity":614436,"participants":[{"id":1002751,"user_id":null,"contact_id":null,"lead_id":null},{"id":1002752,"user_id":89,"contact_id":null,"lead_id":null}]} {"correlation_id":"ccafe863-7885-4971-96fb-87ef6dd4adf3","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"ccafe863-7885-4971-96fb-87ef6dd4adf3","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"ccafe863-7885-4971-96fb-87ef6dd4adf3","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"ccafe863-7885-4971-96fb-87ef6dd4adf3","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"ccafe863-7885-4971-96fb-87ef6dd4adf3","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [Prospect match] Cache / local search hit {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"ccafe863-7885-4971-96fb-87ef6dd4adf3","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"ccafe863-7885-4971-96fb-87ef6dd4adf3","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":10,"delay":10} {"correlation_id":"ccafe863-7885-4971-96fb-87ef6dd4adf3","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [MatchActivityCrmData] Starting CRM data matching {"activity":614382,"remote_search":true,"set_configuration":2,"old_state":{"lead_id":null,"contact_id":null,"account_id":26,"opportunity_id":22,"stage_id":89}} {"correlation_id":"f00a4506-adfe-4fdc-b932-e6d2bc751fde","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":614382} {"correlation_id":"f00a4506-adfe-4fdc-b932-e6d2bc751fde","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":614382,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"f00a4506-adfe-4fdc-b932-e6d2bc751fde","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [MatchActivityCrmData] Participants old state {"activity":614382,"participants":[{"id":1002632,"user_id":null,"contact_id":null,"lead_id":null},{"id":1002633,"user_id":89,"contact_id":null,"lead_id":null}]} {"correlation_id":"f00a4506-adfe-4fdc-b932-e6d2bc751fde","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"f00a4506-adfe-4fdc-b932-e6d2bc751fde","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"f00a4506-adfe-4fdc-b932-e6d2bc751fde","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"f00a4506-adfe-4fdc-b932-e6d2bc751fde","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"f00a4506-adfe-4fdc-b932-e6d2bc751fde","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [Prospect match] Cache / local search hit {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"f00a4506-adfe-4fdc-b932-e6d2bc751fde","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"f00a4506-adfe-4fdc-b932-e6d2bc751fde","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":10,"delay":12} {"correlation_id":"f00a4506-adfe-4fdc-b932-e6d2bc751fde","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [MatchActivityCrmData] Starting CRM data matching {"activity":614381,"remote_search":true,"set_configuration":2,"old_state":{"lead_id":null,"contact_id":null,"account_id":26,"opportunity_id":22,"stage_id":89}} {"correlation_id":"36bd73f5-17f9-4f70-8254-2214543c7f8e","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":614381} {"correlation_id":"36bd73f5-17f9-4f70-8254-2214543c7f8e","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":614381,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"36bd73f5-17f9-4f70-8254-2214543c7f8e","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [MatchActivityCrmData] Participants old state {"activity":614381,"participants":[{"id":1002630,"user_id":null,"contact_id":null,"lead_id":null},{"id":1002631,"user_id":89,"contact_id":null,"lead_id":null}]} {"correlation_id":"36bd73f5-17f9-4f70-8254-2214543c7f8e","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"36bd73f5-17f9-4f70-8254-2214543c7f8e","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"36bd73f5-17f9-4f70-8254-2214543c7f8e","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"36bd73f5-17f9-4f70-8254-2214543c7f8e","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"36bd73f5-17f9-4f70-8254-2214543c7f8e","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [Prospect match] Cache / local search hit {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"36bd73f5-17f9-4f70-8254-2214543c7f8e","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"36bd73f5-17f9-4f70-8254-2214543c7f8e","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":10,"delay":10} {"correlation_id":"36bd73f5-17f9-4f70-8254-2214543c7f8e","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:15] local.INFO: [MatchActivityCrmData] Starting CRM data matching {"activity":614378,"remote_search":true,"set_configuration":2,"old_state":{"lead_id":null,"contact_id":6167,"account_id":null,"opportunity_id":null,"stage_id":null}} {"correlation_id":"a4a3a058-ec22-4f04-bb14-a9bff18ce214","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:15] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":614378} {"correlation_id":"a4a3a058-ec22-4f04-bb14-a9bff18ce214","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:15] local.INFO: [ AsyncU...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"bounds":{"left":0.025930852,"top":0.019952115,"width":0.03856383,"height":0.025538707},"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JY-20725-handle-HS-search-rate-limit, menu","depth":5,"bounds":{"left":0.064494684,"top":0.019952115,"width":0.09541223,"height":0.025538707},"on_screen":true,"help_text":"Git Branch: JY-20725-handle-HS-search-rate-limit","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"bounds":{"left":0.82413566,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"HandleHubspotRateLimitTest","depth":6,"bounds":{"left":0.8394282,"top":0.019952115,"width":0.076130316,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'HandleHubspotRateLimitTest'","depth":6,"bounds":{"left":0.9155585,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Debug 'HandleHubspotRateLimitTest'","depth":6,"bounds":{"left":0.9268617,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More Actions","depth":6,"bounds":{"left":0.9381649,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JetBrains AI","depth":5,"bounds":{"left":0.96609044,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Search Everywhere","depth":5,"bounds":{"left":0.9773936,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"IDE and Project Settings","depth":5,"bounds":{"left":0.9886968,"top":0.019952115,"width":0.011303186,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.042220745,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"1","depth":4,"bounds":{"left":0.49800533,"top":0.17478053,"width":0.00731383,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"2","depth":4,"bounds":{"left":0.50731385,"top":0.17478053,"width":0.007978723,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"67","depth":4,"bounds":{"left":0.51728725,"top":0.17478053,"width":0.009973404,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"3","depth":4,"bounds":{"left":0.52925533,"top":0.17478053,"width":0.007978723,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"bounds":{"left":0.53889626,"top":0.17318435,"width":0.00731383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Next Highlighted Error","depth":4,"bounds":{"left":0.5462101,"top":0.17318435,"width":0.006981383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Services\\Crm\\Hubspot;\n\nuse HubSpot\\Client\\Crm\\Deals\\ApiException as DealApiException;\nuse HubSpot\\Client\\Crm\\Contacts\\ApiException as ContactApiException;\nuse HubSpot\\Client\\Crm\\Companies\\ApiException as CompanyApiException;\nuse HubSpot\\Client\\Crm\\Contacts\\Model\\SimplePublicObjectWithAssociations as ContactsWithAssociations;\nuse HubSpot\\Client\\Crm\\Companies\\Model\\SimplePublicObjectWithAssociations as CompaniesWithAssociations;\nuse HubSpot\\Client\\Crm\\Deals\\Model\\SimplePublicObjectWithAssociations as DealWithAssociations;\nuse HubSpot\\Client\\Crm\\Objects\\Model\\SimplePublicObjectInput;\nuse HubSpot\\Client\\Crm\\Objects\\Model\\SimplePublicObjectWithAssociations as ObjectWithAssociations;\nuse HubSpot\\Client\\Crm\\Pipelines\\Model\\Error;\nuse HubSpot\\Client\\Crm\\Pipelines\\Model\\PipelineStage;\nuse HubSpot\\Client\\Crm\\Properties\\Model\\Property;\nuse HubSpot\\Discovery\\Discovery;\nuse Jiminny\\Exceptions\\CrmException;\nuse Jiminny\\Exceptions\\RateLimitException;\nuse Jiminny\\Exceptions\\SocialAccountTokenInvalidException;\nuse Jiminny\\Jobs\\Crm\\NoteObject;\nuse Jiminny\\Models\\Crm\\Field;\nuse Jiminny\\Services\\Crm\\BaseClient;\nuse Jiminny\\Services\\Crm\\Hubspot\\DTO\\Response\\Owner;\nuse Jiminny\\Services\\SocialAccountService;\nuse SevenShores\\Hubspot\\Exceptions\\BadRequest;\nuse SevenShores\\Hubspot\\Exceptions\\HubspotException;\nuse SevenShores\\Hubspot\\Factory;\nuse SevenShores\\Hubspot\\Http\\Response;\nuse Jiminny\\Services\\Crm\\Hubspot\\Pagination\\HubspotPaginationService;\nuse Illuminate\\Support\\Facades\\Redis;\nuse Throwable;\n\n/**\n * @phpstan-type CrmFieldOption array{id:string, label:string, value?:string}\n */\nclass Client extends BaseClient implements HubspotClientInterface\n{\n public const string MIN_API_VERSION = '2';\n\n public const string BASE_URL = 'https://api.hubapi.com';\n\n public const int ASSOCIATIONS_BATCH_SIZE_LIMIT = 1000;\n\n private HubspotPaginationService $paginationService;\n private HubspotTokenManager $tokenManager;\n\n public function __construct(\n SocialAccountService $socialAccountService,\n HubspotPaginationService $paginationService,\n HubspotTokenManager $tokenManager\n ) {\n parent::__construct($socialAccountService);\n $this->paginationService = $paginationService;\n $this->tokenManager = $tokenManager;\n\n $this->setBaseUrl(self::BASE_URL);\n $this->setVersion(self::MIN_API_VERSION);\n }\n\n /**\n * Reacts to a rate limits (429) from HubSpot by translating it\n * into a RateLimitException carrying retry_after.\n *\n * Wrap any outbound HubSpot call (SDK or raw HTTP) like:\n *\n * $this->executeRequest(fn () => $this->getNewInstance()->crm()->...);\n *\n * @template T\n * @param callable(): T $apiCall\n * @return T\n *\n * @throws RateLimitException\n */\n private function executeRequest(callable $apiCall)\n {\n $cacheKey = $this->getRateLimitCacheKey();\n\n $cachedRetryAfter = Redis::get($cacheKey);\n if (is_string($cachedRetryAfter) && is_numeric($cachedRetryAfter)) {\n throw new RateLimitException(\n 'Hubspot rate limit (cached circuit-breaker)',\n (int) $cachedRetryAfter,\n );\n }\n\n try {\n return $apiCall();\n } catch (Throwable $e) {\n if ($this->isHubspotRateLimit($e)) {\n $retryAfter = $this->parseRetryAfter($e);\n\n Redis::setex($cacheKey, $retryAfter, (string) $retryAfter);\n\n $this->log->warning('[Hubspot] Received 429 from API', [\n 'team_id' => $this->config->team_id,\n 'config_id' => $this->config->getId(),\n 'retry_after' => $retryAfter,\n 'reason' => $e->getMessage(),\n ]);\n\n throw new RateLimitException('Hubspot returned 429', $retryAfter, $e);\n }\n\n throw $e;\n }\n }\n\n private function getRateLimitCacheKey(): string\n {\n return sprintf('hubspot:ratelimit:portal:%d', $this->config->getId());\n }\n\n public function isHubspotRateLimit(Throwable $e): bool\n {\n if ($e instanceof BadRequest\n || $e instanceof DealApiException\n || $e instanceof ContactApiException\n || $e instanceof CompanyApiException\n || $e instanceof \\GuzzleHttp\\Exception\\RequestException\n ) {\n return (int) $e->getCode() === 429;\n }\n\n return false;\n }\n\n public function parseRetryAfter(Throwable $e): int\n {\n if (method_exists($e, 'getResponseHeaders')) {\n $headers = $e->getResponseHeaders() ?: [];\n $value = $headers['Retry-After'] ?? $headers['retry-after'] ?? null;\n if (is_array($value)) {\n $value = $value[0] ?? null;\n }\n if (is_numeric($value)) {\n return (int) $value;\n }\n }\n\n $message = strtolower($e->getMessage());\n\n if (str_contains($message, 'daily')) {\n return 600;\n }\n if (str_contains($message, 'ten secondly')) {\n return 10;\n }\n if (str_contains($message, 'secondly')) {\n return 1;\n }\n\n $this->log->warning('[Hubspot] No retry-after header or known message, using default', [\n 'exception_class' => get_class($e),\n 'message' => $message,\n ]);\n\n return 10;\n }\n\n public function parseMessage(Throwable $e): string\n {\n if (! method_exists($e, 'getResponseBody')) {\n return '';\n }\n\n $body = $e->getResponseBody();\n if (is_string($body)) {\n $body = json_decode($body, true) ?? [];\n }\n\n if (! is_array($body)) {\n return '';\n }\n\n return (string) ($body['message'] ?? '');\n }\n\n public function getMinimumApiVersion(): string\n {\n return self::MIN_API_VERSION;\n }\n\n public function getInstance(): Factory\n {\n return new Factory([\n 'key' => $this->accessToken,\n 'oauth2' => true,\n 'base_url' => $this->baseUrl,\n ]);\n }\n\n public function getNewInstance(): Discovery\n {\n return \\HubSpot\\Factory::createWithAccessToken($this->accessToken);\n }\n\n /**\n * Secondly and daily limits for Hubspot API\n *\n * Product Tier: Free & Starter | Professional & Enterprise | API add-on (any tier)\n * Burst: 100/10 seconds | 150/10 seconds | 200/10 seconds\n * Daily: 250,000 | 500,000 | 1,000,000\n *\n * Official documentation states: The search endpoints are rate limited to five requests per second.\n * Since with 5 RPS were still hitting secondly rate limits we lowered it to 4\n */\n public function getPaginatedData(array $payload, string $type, int $offset = 0): array\n {\n $total = 0;\n $lastId = null;\n $rows = [];\n foreach ($this->getPaginatedDataGenerator($payload, $type, $offset, $total, $lastId) as $row) {\n $rows[] = $row;\n }\n\n return ['results' => $rows, 'total' => $total, 'last_record' => $lastId];\n }\n\n /**\n * @throws HubspotException\n * @throws SocialAccountTokenInvalidException\n * @throws BadRequest\n */\n public function getPaginatedDataGenerator(\n array $payload,\n string $type,\n int $offset = 0,\n int &$total = 0,\n ?string &$lastRecordId = null\n ): \\Generator {\n return $this->paginationService->getPaginatedDataGenerator(\n $this,\n $payload,\n $type,\n $offset,\n $total,\n $lastRecordId\n );\n }\n\n /**\n * Execute a search request against HubSpot CRM objects with rate limiting.\n *\n * @param string $objectType The object type ('deals', 'companies', 'contacts', 'calls')\n * @param array<string, mixed> $payload The search payload with filters, sorts, properties, etc.\n * @return array The search response with 'results', 'total', 'paging' keys\n * @throws RateLimitException When rate limit is hit\n * @throws HubspotException On API errors\n */\n public function search(string $objectType, array $payload): array\n {\n $endpoint = self::BASE_URL . \"/crm/v3/objects/{$objectType}/search\";\n\n return $this->executeRequest(function () use ($endpoint, $payload) {\n $response = $this->getInstance()->getClient()->request('POST', $endpoint, ['json' => $payload]);\n\n return $response->toArray();\n });\n }\n\n /**\n * @throws DealApiException\n * @throws CrmException\n */\n public function getOpportunityById(string $crmId, array $fields): array\n {\n try {\n $deal = $this->getNewInstance()->crm()->deals()->basicApi()->getById(\n $crmId,\n implode(',', $fields),\n 'companies,contacts'\n );\n } catch (DealApiException $e) {\n $this->log->info('[Hubspot] Failed to fetch opportunity', [\n 'crm_id' => $crmId,\n 'reason' => $e->getMessage(),\n ]);\n\n throw $e;\n }\n\n if (! $deal instanceof DealWithAssociations) {\n throw new CrmException('Deal not found');\n }\n\n return [\n 'id' => $deal->getId(),\n 'properties' => $deal->getProperties(),\n 'associations' => $deal->getAssociations(),\n ];\n }\n\n /**\n * Generic batch read method for HubSpot objects\n *\n * @param string $objectType The object type ('deals', 'companies', 'contacts')\n * @param array<string> $crmIds Array of HubSpot object IDs (max 100)\n * @param array<string> $fields Array of property names to fetch\n *\n * @return array<string, array> Array keyed by CRM ID with object data\n */\n private function batchReadObjects(string $objectType, array $crmIds, array $fields): array\n {\n if (empty($crmIds)) {\n return [];\n }\n\n $this->validateBatchSize($objectType, $crmIds);\n $this->ensureValidToken();\n\n try {\n $batchConfig = $this->createBatchConfiguration($objectType);\n $batchReadRequest = $this->prepareBatchRequest($batchConfig, $crmIds, $fields);\n $response = $batchConfig['api']->read($batchReadRequest);\n\n $this->validateApiResponse($response, $objectType);\n\n $results = $this->processApiResults($response);\n $this->logBatchResults($objectType, $crmIds, $results);\n\n return $results;\n } catch (\\Throwable $e) {\n $this->handleBatchError($e, $objectType, $crmIds);\n }\n }\n\n private function validateBatchSize(string $objectType, array $crmIds): void\n {\n if (count($crmIds) > 100) {\n throw new \\InvalidArgumentException(\"Batch size cannot exceed 100 {$objectType}\");\n }\n }\n\n private function createBatchConfiguration(string $objectType): array\n {\n $configurations = [\n 'deals' => [\n 'batchReadRequest' => new \\HubSpot\\Client\\Crm\\Deals\\Model\\BatchReadInputSimplePublicObjectId(),\n 'inputClass' => \\HubSpot\\Client\\Crm\\Deals\\Model\\SimplePublicObjectId::class,\n 'api' => $this->getNewInstance()->crm()->deals()->batchApi(),\n ],\n 'companies' => [\n 'batchReadRequest' => new \\HubSpot\\Client\\Crm\\Companies\\Model\\BatchReadInputSimplePublicObjectId(),\n 'inputClass' => \\HubSpot\\Client\\Crm\\Companies\\Model\\SimplePublicObjectId::class,\n 'api' => $this->getNewInstance()->crm()->companies()->batchApi(),\n ],\n 'contacts' => [\n 'batchReadRequest' => new \\HubSpot\\Client\\Crm\\Contacts\\Model\\BatchReadInputSimplePublicObjectId(),\n 'inputClass' => \\HubSpot\\Client\\Crm\\Contacts\\Model\\SimplePublicObjectId::class,\n 'api' => $this->getNewInstance()->crm()->contacts()->batchApi(),\n ],\n ];\n\n if (! isset($configurations[$objectType])) {\n throw new \\InvalidArgumentException(\"Unsupported object type: {$objectType}\");\n }\n\n return $configurations[$objectType];\n }\n\n private function prepareBatchRequest(array $batchConfig, array $crmIds, array $fields): object\n {\n $batchReadRequest = $batchConfig['batchReadRequest'];\n $inputClass = $batchConfig['inputClass'];\n\n $inputs = array_map(function ($crmId) use ($inputClass) {\n $input = new $inputClass();\n $input->setId($crmId);\n\n return $input;\n }, $crmIds);\n\n $batchReadRequest->setInputs($inputs);\n $batchReadRequest->setProperties($fields);\n\n return $batchReadRequest;\n }\n\n private function validateApiResponse($response, string $objectType): void\n {\n if (! $response) {\n throw new CrmException(\"HubSpot API returned null response for {$objectType} batch read\");\n }\n }\n\n private function processApiResults($response): array\n {\n $results = [];\n $responseResults = $response->getResults();\n\n if ($responseResults) {\n foreach ($responseResults as $object) {\n if ($object && $object->getId()) {\n $results[$object->getId()] = [\n 'id' => $object->getId(),\n 'properties' => $object->getProperties() ?: [],\n ];\n }\n }\n }\n\n return $results;\n }\n\n private function logBatchResults(string $objectType, array $crmIds, array $results): void\n {\n $this->log->info(\"[HubSpot] Batch fetched {$objectType}\", [\n 'requested_count' => count($crmIds),\n 'returned_count' => count($results),\n 'crm_ids' => $crmIds,\n ]);\n }\n\n private function handleBatchError(\\Throwable $e, string $objectType, array $crmIds): void\n {\n $errorMessage = $e->getMessage() ?: 'Unknown error';\n $errorTrace = $e->getTraceAsString() ?: 'No trace available';\n\n $this->log->error(\"[HubSpot] Failed to batch fetch {$objectType}\", [\n 'crm_ids' => $crmIds,\n 'error' => $errorMessage,\n 'trace' => $errorTrace,\n ]);\n\n throw new CrmException(\"Failed to batch fetch {$objectType}: \" . $errorMessage);\n }\n\n /**\n * Batch read multiple opportunities by their CRM IDs\n *\n * @param array<string> $crmIds Array of HubSpot deal IDs (max 100)\n * @param array<string> $fields Array of property names to fetch\n *\n * @return array<string, array> Array keyed by CRM ID with opportunity data\n */\n public function getOpportunitiesByIds(array $crmIds, array $fields): array\n {\n return $this->batchReadObjects('deals', $crmIds, $fields);\n }\n\n /**\n * Batch read multiple companies by their CRM IDs\n *\n * @param array<string> $crmIds Array of HubSpot company IDs (max 100)\n * @param array<string> $fields Array of property names to fetch\n *\n * @return array<string, array> Array keyed by CRM ID with company data\n */\n public function getCompaniesByIds(array $crmIds, array $fields): array\n {\n return $this->batchReadObjects('companies', $crmIds, $fields);\n }\n\n /**\n * Batch read multiple contacts by their CRM IDs\n *\n * @param array<string> $crmIds Array of HubSpot contact IDs (max 100)\n * @param array<string> $fields Array of property names to fetch\n *\n * @return array<string, array> Array keyed by CRM ID with contact data\n */\n public function getContactsByIds(array $crmIds, array $fields): array\n {\n return $this->batchReadObjects('contacts', $crmIds, $fields);\n }\n\n /**\n * @throws CompanyApiException\n * @throws CrmException\n */\n public function getAccountById(string $crmId, array $fields): array\n {\n try {\n $company = $this->getNewInstance()->crm()->companies()->basicApi()->getById(\n $crmId,\n implode(',', $fields),\n );\n } catch (CompanyApiException $e) {\n $this->log->info('[Hubspot] Failed to fetch account', [\n 'crm_id' => $crmId,\n 'reason' => $e->getMessage(),\n ]);\n\n throw $e;\n }\n\n if (! $company instanceof CompaniesWithAssociations) {\n throw new CrmException('Account not found');\n }\n\n return [\n 'id' => $company->getId(),\n 'properties' => $company->getProperties(),\n ];\n }\n\n /**\n * @throws ContactApiException\n * @throws CrmException\n */\n public function getContactById(string $crmId, array $fields): array\n {\n try {\n $contact = $this->getNewInstance()->crm()->contacts()->basicApi()->getById(\n $crmId,\n implode(',', $fields)\n );\n } catch (ContactApiException $e) {\n $this->log->info('[Hubspot] Failed to fetch contact', [\n 'crm_id' => $crmId,\n 'reason' => $e->getMessage(),\n ]);\n\n throw $e;\n }\n\n if (! $contact instanceof ContactsWithAssociations) {\n throw new CrmException('Contact not found');\n }\n\n return [\n 'id' => $contact->getId(),\n 'properties' => $contact->getProperties(),\n ];\n }\n\n /**\n * This is email search request that Hubspot offers as GET (more generous quota)\n */\n public function getContactByEmail(string $email, array $fields = []): array\n {\n try {\n $contact = $this->getNewInstance()->crm()->contacts()->basicApi()->getById(\n $email,\n implode(',', $fields),\n null,\n false,\n 'email'\n );\n\n return [\n 'id' => $contact->getId(),\n 'properties' => $contact->getProperties(),\n ];\n } catch (ContactApiException $e) {\n $this->log->info('[Hubspot] Failed to fetch contact', [\n 'email' => $email,\n 'reason' => $e->getMessage(),\n ]);\n\n return [];\n }\n }\n\n /**\n * @throws CrmException\n */\n public function fetchProperty(string $objectType, string $propertyId): Property\n {\n $result = $this->getNewInstance()->crm()->properties()->coreApi()->getByName($objectType, $propertyId);\n\n if (! $result instanceof Property) {\n $this->log->error('[Hubspot] Failed to fetch property', [\n 'object_type' => $objectType,\n 'property_id' => $propertyId,\n 'reason' => $result->getMessage(),\n ]);\n\n throw new CrmException('Failed to fetch property');\n }\n\n return $result;\n }\n\n /**\n * @return array<CrmFieldOption>\n */\n public function fetchPropertyOptions(string $objectType, string $propertyId): array\n {\n /** @var array<CrmFieldOption> */\n return $this->fetchProperty($objectType, $propertyId)->getOptions();\n }\n\n /**\n * @return array<array{id:string, label:string, deleted:bool}>\n */\n public function fetchCallDispositions(): array\n {\n /** @var Response $response */\n $response = $this->getInstance()->engagements()->getCallDispositions();\n\n /**\n * @var array<array{\n * id:string,\n * label:string,\n * deleted: bool\n * }>\n */\n return $response->toArray();\n }\n\n /**\n * @return array<CrmFieldOption>\n */\n public function fetchOpportunityPipelineStages(): array\n {\n $stages = [];\n $apiResponse = $this->getNewInstance()->crm()->pipelines()->pipelinesApi()->getAll('deals');\n\n if ($apiResponse instanceof Error) {\n $this->log->error('[Hubspot] Failed to fetch opportunity pipelines', [\n 'reason' => $apiResponse->getMessage(),\n ]);\n\n return [];\n }\n\n foreach ($apiResponse->getResults() as $pipeline) {\n $pipelineStages = array_map(\n static function (PipelineStage $stage) {\n return [\n 'id' => $stage->getId(),\n 'label' => $stage->getLabel(),\n ];\n },\n $pipeline->getStages()\n );\n\n $stages = array_merge($stages, $pipelineStages);\n }\n\n return $stages;\n }\n\n public function fetchOpportunityPipelines(): array\n {\n $pipelines = [];\n\n try {\n $apiResponse = $this->makeRequest('/crm/v3/pipelines/deals');\n } catch (\\Exception $e) {\n $this->log->info('[Hubspot] Failed to fetch opportunity pipelines', [\n 'reason' => $e->getMessage(),\n ]);\n\n return [];\n }\n\n $response = $apiResponse->toArray();\n\n foreach ($response['results'] as $pipeline) {\n $pipelines[] = [\n 'id' => $pipeline['id'],\n 'label' => $pipeline['label'],\n ];\n }\n\n return $pipelines;\n }\n\n /**\n * @return array<CrmFieldOption>\n */\n public function fetchMeetingOutcomeFieldOptions(Field $field): array\n {\n return $field->getCrmProviderId() === 'meetingOutcome'\n ? $this->fetchMeetingOutcomeTypes()\n : $this->fetchCallActivityTypes();\n }\n\n public function fetchMeetingOutcomeTypes(): array\n {\n return $this->extractMeetingTypeOptions(\n 'https://api.hubapi.com/crm/v3/properties/meeting/hs_meeting_outcome'\n );\n }\n\n public function fetchCallActivityTypes(): array\n {\n return $this->extractMeetingTypeOptions(\n 'https://api.hubapi.com/crm/v3/properties/call/hs_activity_type'\n );\n }\n\n private function extractMeetingTypeOptions(string $endpoint): array\n {\n /** @var Response $response */\n $response = $this->getInstance()\n ->getClient()\n ->request('GET', $endpoint);\n\n /**\n * @var array<array{\n * value: string,\n * label: string,\n * displayOrder: int\n * }> $optionData\n */\n $optionData = $response->toArray()['options'] ?? [];\n\n $options = [];\n foreach ($optionData as $item) {\n $options[] = [\n 'id' => $item['value'],\n 'value' => $item['value'],\n 'label' => $item['label'],\n 'display_order' => $item['displayOrder'],\n ];\n }\n\n return $options;\n }\n\n /**\n * @return array<CrmFieldOption>\n */\n public function fetchDispositionFieldOptions(): array\n {\n $options = [];\n\n $dispositions = $this->fetchCallDispositions();\n\n foreach ($dispositions as $disposition) {\n if ($disposition['deleted'] !== false) {\n continue;\n }\n\n $option['value'] = $disposition['id'];\n $option['id'] = $disposition['id'];\n $option['label'] = $disposition['label'];\n\n $options[] = $option;\n }\n\n return $options;\n }\n\n /**\n * @return array<CrmFieldOption>\n */\n public function fetchOpportunityFieldOptions(Field $field): array\n {\n if ($field->isStageField()) {\n return $this->fetchOpportunityPipelineStages();\n }\n\n if ($field->isPipelineField()) {\n return $this->fetchOpportunityPipelines();\n }\n\n return $this->fetchPropertyOptions('deals', $field->getCrmProviderId());\n }\n\n /**\n * @throws BadRequest\n * @throws HubspotException\n */\n public function makeRequest(string $endpoint, $method = 'GET', $payload = [], ?string $queryString = null)\n {\n $endpoint = self::BASE_URL . $endpoint;\n\n if ($method === 'GET') {\n return $this->getInstance()->getClient()?->request(\n method: $method,\n endpoint: $endpoint,\n query_string: $queryString\n );\n } else {\n return $this->getInstance()->getClient()->request($method, $endpoint, [\n 'json' => ($payload),\n ]);\n }\n }\n\n /**\n * @throws BadRequest\n * @throws HubspotException\n */\n public function createMeeting(array $payload): Response\n {\n $endpoint = '/crm/v3/objects/meetings';\n\n return $this->makeRequest($endpoint, 'POST', $payload);\n }\n\n /**\n * @throws BadRequest\n * @throws HubspotException\n */\n public function updateMeeting(string $meetingId, array $payload): Response\n {\n $endpoint = '/crm/v3/objects/meetings/' . $meetingId;\n\n return $this->makeRequest($endpoint, 'PATCH', $payload);\n }\n\n /**\n * @throws \\Exception\n */\n public function createNote(\n string $body,\n string $ownerId,\n int $timestamp,\n string $objectId,\n NoteObject $noteObject\n ): ?string {\n try {\n $noteInput = new SimplePublicObjectInput([\n 'properties' => [\n 'hs_note_body' => $body,\n 'hubspot_owner_id' => $ownerId,\n 'hs_timestamp' => $timestamp,\n ],\n ]);\n\n // Create note\n $note = $this->getNewInstance()->crm()->objects()->basicApi()->create('note', $noteInput);\n\n $this->getNewInstance()->crm()->objects()->associationsApi()->create(\n 'note',\n $note->getId(),\n $this->getNoteObject($noteObject),\n $objectId,\n $this->getNoteAssociationType($noteObject),\n );\n\n return $note->getId();\n } catch (\\Exception $e) {\n $this->log->error('[Hubspot] Failed to create note', [\n 'objectId' => $objectId,\n 'noteObject' => $noteObject->getObjectType(),\n 'reason' => $e->getMessage(),\n ]);\n\n \\Sentry::captureException($e);\n }\n\n return null;\n }\n\n public function updateEngagement(string $objectId, array $engagement, array $metadata): void\n {\n $this->getInstance()->engagements()->update($objectId, $engagement, $metadata);\n }\n\n public function getEngagementData(string $engagementId): array\n {\n $engagement = $this->getInstance()->engagements()->get($engagementId);\n\n return $engagement->toArray();\n }\n\n public function createEngagement(array $engagement, array $associations, array $metadata): Response\n {\n return $this->getInstance()\n ->engagements()\n ->create($engagement, $associations, $metadata);\n }\n\n public function isUnauthorizedException(\\Exception $e): bool\n {\n // Check for specific HubSpot API exception types first\n if ($e instanceof BadRequest) {\n // BadRequest can contain 401 status codes\n return $e->getCode() === 401;\n }\n\n // Check for HTTP client exceptions with status codes\n if ($e instanceof \\GuzzleHttp\\Exception\\RequestException && $e->hasResponse()) {\n $response = $e->getResponse();\n if ($response !== null) {\n return $response->getStatusCode() === 401;\n }\n }\n\n // Check for Guzzle HTTP exceptions\n if ($e instanceof \\GuzzleHttp\\Exception\\ClientException) {\n return $e->getCode() === 401;\n }\n\n // Fallback to string matching as last resort, but be more specific\n $message = strtolower($e->getMessage());\n\n return str_contains($message, '401 unauthorized') ||\n str_contains($message, 'http 401') ||\n str_contains($message, 'status code 401') ||\n (preg_match('/\\b401\\b/', $message) && str_contains($message, 'unauthorized'));\n }\n\n /**\n * Validates and refreshes the access token if needed before API requests.\n * This ensures long-running processes don't fail due to token expiration.\n *\n * @throws SocialAccountTokenInvalidException\n */\n public function ensureValidToken(): void\n {\n if ($this->oauthAccount === null) {\n return;\n }\n\n $newToken = $this->tokenManager->ensureValidToken($this->oauthAccount);\n if ($newToken !== null) {\n $this->accessToken = $newToken;\n }\n }\n\n public function getConfig()\n {\n return $this->config;\n }\n\n // returns only active (archived=false)\n public function getOwners(): array\n {\n return $this->getNewInstance()->crm()->owners()->getAll();\n }\n\n /**\n * @param bool $archived\n *\n * @return array<Owner>|[]\n */\n public function getOwnersArchived(bool $archived = true): array\n {\n $endpoint = '/crm/v3/owners';\n $queryParams = [\n 'archived' => $archived ? 'true' : 'false',\n ];\n $queryString = http_build_query($queryParams);\n\n $owners = [];\n\n try {\n $response = $this->makeRequest(endpoint: $endpoint, queryString: $queryString);\n $responseData = $response?->toArray();\n\n foreach ($responseData['results'] as $result) {\n try {\n $owners[] = Owner::create($result);\n } catch (Throwable $e) {\n $this->log->error('[HubSpot] Failed to process owner data', [\n 'result' => $result,\n 'error' => $e->getMessage(),\n ]);\n\n continue;\n }\n }\n } catch (Throwable $e) {\n $this->log->error('HubSpot] Failed to fetch owners', [\n 'archived' => $archived,\n 'error' => $e->getMessage(),\n ]);\n\n return [];\n }\n\n return $owners;\n }\n\n public function getMeeting(string $engagementId): ObjectWithAssociations\n {\n return $this->getNewInstance()->crm()->objects()->basicApi()\n ->getById('meeting', $engagementId, null, 'contact,company,deal');\n }\n\n public function deleteEngagement(string $engagementId): void\n {\n $this->getInstance()->engagements()->delete((int) $engagementId);\n }\n\n public function getAssociationsData(array $ids, string $fromObject, string $toObject): array\n {\n $associationData = [];\n $idChunks = array_chunk($ids, self::ASSOCIATIONS_BATCH_SIZE_LIMIT);\n\n foreach ($idChunks as $idChunk) {\n try {\n $batchInput = new \\HubSpot\\Client\\Crm\\Associations\\Model\\BatchInputPublicObjectId();\n $batchInput->setInputs(array_map(function ($id) {\n $publicObjectId = new \\HubSpot\\Client\\Crm\\Associations\\Model\\PublicObjectId();\n $publicObjectId->setId($id);\n\n return $publicObjectId;\n }, $idChunk));\n\n $associatedObjectsData = $this\n ->getNewInstance()\n ->crm()\n ->associations()\n ->batchApi()\n ->read($fromObject, $toObject, $batchInput);\n\n if ($associatedObjectsData instanceof \\HubSpot\\Client\\Crm\\Associations\\Model\\BatchResponsePublicAssociationMulti) {\n foreach ($associatedObjectsData->getResults() as $association) {\n $from = $association->getFrom()->getId();\n $toAssociations = $association->getTo();\n\n if (! empty($toAssociations)) {\n $associationData[$from] = array_map(function ($item) {\n return $item->getId();\n }, $toAssociations);\n }\n }\n }\n// } catch (RateLimitException $e) {\n// throw $e;\n } catch (\\Exception $e) {\n $this->log->error('[Hubspot] Failed to fetch associations', [\n 'from_object' => $fromObject,\n 'to_object' => $toObject,\n 'reason' => $e->getMessage(),\n ]);\n }\n }\n\n return $associationData;\n }\n\n /**\n * @throws \\Exception\n */\n private function getNoteAssociationType(NoteObject $noteObject): string\n {\n return match($noteObject) {\n NoteObject::Opportunity => 'note_to_deal',\n NoteObject::Lead, NoteObject::Contact => 'note_to_contact', // or 'note_to_lead' if your portal supports it\n NoteObject::Account => 'note_to_company',\n NoteObject::Call, NoteObject::Event => throw new \\Exception('Not supported'),\n };\n }\n\n /**\n * @throws \\Exception\n */\n private function getNoteObject(NoteObject $noteObject): string\n {\n return match($noteObject) {\n NoteObject::Opportunity => 'deal',\n NoteObject::Lead, NoteObject::Contact => 'contact',\n NoteObject::Account => 'company',\n NoteObject::Call, NoteObject::Event => throw new \\Exception('Not supported'),\n };\n }\n\n public function addAssociations(string $objectType, string $associationType, array $payload): Response\n {\n $endpoint = \"/crm/v4/associations/$objectType/$associationType/batch/create\";\n\n return $this->makeRequest($endpoint, 'POST', $payload);\n }\n\n public function removeAssociations(string $objectType, string $associationType, array $payload): Response\n {\n $endpoint = \"/crm/v4/associations/$objectType/$associationType/batch/archive\";\n\n return $this->makeRequest($endpoint, 'POST', $payload);\n }\n}","depth":4,"on_screen":true,"value":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Services\\Crm\\Hubspot;\n\nuse HubSpot\\Client\\Crm\\Deals\\ApiException as DealApiException;\nuse HubSpot\\Client\\Crm\\Contacts\\ApiException as ContactApiException;\nuse HubSpot\\Client\\Crm\\Companies\\ApiException as CompanyApiException;\nuse HubSpot\\Client\\Crm\\Contacts\\Model\\SimplePublicObjectWithAssociations as ContactsWithAssociations;\nuse HubSpot\\Client\\Crm\\Companies\\Model\\SimplePublicObjectWithAssociations as CompaniesWithAssociations;\nuse HubSpot\\Client\\Crm\\Deals\\Model\\SimplePublicObjectWithAssociations as DealWithAssociations;\nuse HubSpot\\Client\\Crm\\Objects\\Model\\SimplePublicObjectInput;\nuse HubSpot\\Client\\Crm\\Objects\\Model\\SimplePublicObjectWithAssociations as ObjectWithAssociations;\nuse HubSpot\\Client\\Crm\\Pipelines\\Model\\Error;\nuse HubSpot\\Client\\Crm\\Pipelines\\Model\\PipelineStage;\nuse HubSpot\\Client\\Crm\\Properties\\Model\\Property;\nuse HubSpot\\Discovery\\Discovery;\nuse Jiminny\\Exceptions\\CrmException;\nuse Jiminny\\Exceptions\\RateLimitException;\nuse Jiminny\\Exceptions\\SocialAccountTokenInvalidException;\nuse Jiminny\\Jobs\\Crm\\NoteObject;\nuse Jiminny\\Models\\Crm\\Field;\nuse Jiminny\\Services\\Crm\\BaseClient;\nuse Jiminny\\Services\\Crm\\Hubspot\\DTO\\Response\\Owner;\nuse Jiminny\\Services\\SocialAccountService;\nuse SevenShores\\Hubspot\\Exceptions\\BadRequest;\nuse SevenShores\\Hubspot\\Exceptions\\HubspotException;\nuse SevenShores\\Hubspot\\Factory;\nuse SevenShores\\Hubspot\\Http\\Response;\nuse Jiminny\\Services\\Crm\\Hubspot\\Pagination\\HubspotPaginationService;\nuse Illuminate\\Support\\Facades\\Redis;\nuse Throwable;\n\n/**\n * @phpstan-type CrmFieldOption array{id:string, label:string, value?:string}\n */\nclass Client extends BaseClient implements HubspotClientInterface\n{\n public const string MIN_API_VERSION = '2';\n\n public const string BASE_URL = 'https://api.hubapi.com';\n\n public const int ASSOCIATIONS_BATCH_SIZE_LIMIT = 1000;\n\n private HubspotPaginationService $paginationService;\n private HubspotTokenManager $tokenManager;\n\n public function __construct(\n SocialAccountService $socialAccountService,\n HubspotPaginationService $paginationService,\n HubspotTokenManager $tokenManager\n ) {\n parent::__construct($socialAccountService);\n $this->paginationService = $paginationService;\n $this->tokenManager = $tokenManager;\n\n $this->setBaseUrl(self::BASE_URL);\n $this->setVersion(self::MIN_API_VERSION);\n }\n\n /**\n * Reacts to a rate limits (429) from HubSpot by translating it\n * into a RateLimitException carrying retry_after.\n *\n * Wrap any outbound HubSpot call (SDK or raw HTTP) like:\n *\n * $this->executeRequest(fn () => $this->getNewInstance()->crm()->...);\n *\n * @template T\n * @param callable(): T $apiCall\n * @return T\n *\n * @throws RateLimitException\n */\n private function executeRequest(callable $apiCall)\n {\n $cacheKey = $this->getRateLimitCacheKey();\n\n $cachedRetryAfter = Redis::get($cacheKey);\n if (is_string($cachedRetryAfter) && is_numeric($cachedRetryAfter)) {\n throw new RateLimitException(\n 'Hubspot rate limit (cached circuit-breaker)',\n (int) $cachedRetryAfter,\n );\n }\n\n try {\n return $apiCall();\n } catch (Throwable $e) {\n if ($this->isHubspotRateLimit($e)) {\n $retryAfter = $this->parseRetryAfter($e);\n\n Redis::setex($cacheKey, $retryAfter, (string) $retryAfter);\n\n $this->log->warning('[Hubspot] Received 429 from API', [\n 'team_id' => $this->config->team_id,\n 'config_id' => $this->config->getId(),\n 'retry_after' => $retryAfter,\n 'reason' => $e->getMessage(),\n ]);\n\n throw new RateLimitException('Hubspot returned 429', $retryAfter, $e);\n }\n\n throw $e;\n }\n }\n\n private function getRateLimitCacheKey(): string\n {\n return sprintf('hubspot:ratelimit:portal:%d', $this->config->getId());\n }\n\n public function isHubspotRateLimit(Throwable $e): bool\n {\n if ($e instanceof BadRequest\n || $e instanceof DealApiException\n || $e instanceof ContactApiException\n || $e instanceof CompanyApiException\n || $e instanceof \\GuzzleHttp\\Exception\\RequestException\n ) {\n return (int) $e->getCode() === 429;\n }\n\n return false;\n }\n\n public function parseRetryAfter(Throwable $e): int\n {\n if (method_exists($e, 'getResponseHeaders')) {\n $headers = $e->getResponseHeaders() ?: [];\n $value = $headers['Retry-After'] ?? $headers['retry-after'] ?? null;\n if (is_array($value)) {\n $value = $value[0] ?? null;\n }\n if (is_numeric($value)) {\n return (int) $value;\n }\n }\n\n $message = strtolower($e->getMessage());\n\n if (str_contains($message, 'daily')) {\n return 600;\n }\n if (str_contains($message, 'ten secondly')) {\n return 10;\n }\n if (str_contains($message, 'secondly')) {\n return 1;\n }\n\n $this->log->warning('[Hubspot] No retry-after header or known message, using default', [\n 'exception_class' => get_class($e),\n 'message' => $message,\n ]);\n\n return 10;\n }\n\n public function parseMessage(Throwable $e): string\n {\n if (! method_exists($e, 'getResponseBody')) {\n return '';\n }\n\n $body = $e->getResponseBody();\n if (is_string($body)) {\n $body = json_decode($body, true) ?? [];\n }\n\n if (! is_array($body)) {\n return '';\n }\n\n return (string) ($body['message'] ?? '');\n }\n\n public function getMinimumApiVersion(): string\n {\n return self::MIN_API_VERSION;\n }\n\n public function getInstance(): Factory\n {\n return new Factory([\n 'key' => $this->accessToken,\n 'oauth2' => true,\n 'base_url' => $this->baseUrl,\n ]);\n }\n\n public function getNewInstance(): Discovery\n {\n return \\HubSpot\\Factory::createWithAccessToken($this->accessToken);\n }\n\n /**\n * Secondly and daily limits for Hubspot API\n *\n * Product Tier: Free & Starter | Professional & Enterprise | API add-on (any tier)\n * Burst: 100/10 seconds | 150/10 seconds | 200/10 seconds\n * Daily: 250,000 | 500,000 | 1,000,000\n *\n * Official documentation states: The search endpoints are rate limited to five requests per second.\n * Since with 5 RPS were still hitting secondly rate limits we lowered it to 4\n */\n public function getPaginatedData(array $payload, string $type, int $offset = 0): array\n {\n $total = 0;\n $lastId = null;\n $rows = [];\n foreach ($this->getPaginatedDataGenerator($payload, $type, $offset, $total, $lastId) as $row) {\n $rows[] = $row;\n }\n\n return ['results' => $rows, 'total' => $total, 'last_record' => $lastId];\n }\n\n /**\n * @throws HubspotException\n * @throws SocialAccountTokenInvalidException\n * @throws BadRequest\n */\n public function getPaginatedDataGenerator(\n array $payload,\n string $type,\n int $offset = 0,\n int &$total = 0,\n ?string &$lastRecordId = null\n ): \\Generator {\n return $this->paginationService->getPaginatedDataGenerator(\n $this,\n $payload,\n $type,\n $offset,\n $total,\n $lastRecordId\n );\n }\n\n /**\n * Execute a search request against HubSpot CRM objects with rate limiting.\n *\n * @param string $objectType The object type ('deals', 'companies', 'contacts', 'calls')\n * @param array<string, mixed> $payload The search payload with filters, sorts, properties, etc.\n * @return array The search response with 'results', 'total', 'paging' keys\n * @throws RateLimitException When rate limit is hit\n * @throws HubspotException On API errors\n */\n public function search(string $objectType, array $payload): array\n {\n $endpoint = self::BASE_URL . \"/crm/v3/objects/{$objectType}/search\";\n\n return $this->executeRequest(function () use ($endpoint, $payload) {\n $response = $this->getInstance()->getClient()->request('POST', $endpoint, ['json' => $payload]);\n\n return $response->toArray();\n });\n }\n\n /**\n * @throws DealApiException\n * @throws CrmException\n */\n public function getOpportunityById(string $crmId, array $fields): array\n {\n try {\n $deal = $this->getNewInstance()->crm()->deals()->basicApi()->getById(\n $crmId,\n implode(',', $fields),\n 'companies,contacts'\n );\n } catch (DealApiException $e) {\n $this->log->info('[Hubspot] Failed to fetch opportunity', [\n 'crm_id' => $crmId,\n 'reason' => $e->getMessage(),\n ]);\n\n throw $e;\n }\n\n if (! $deal instanceof DealWithAssociations) {\n throw new CrmException('Deal not found');\n }\n\n return [\n 'id' => $deal->getId(),\n 'properties' => $deal->getProperties(),\n 'associations' => $deal->getAssociations(),\n ];\n }\n\n /**\n * Generic batch read method for HubSpot objects\n *\n * @param string $objectType The object type ('deals', 'companies', 'contacts')\n * @param array<string> $crmIds Array of HubSpot object IDs (max 100)\n * @param array<string> $fields Array of property names to fetch\n *\n * @return array<string, array> Array keyed by CRM ID with object data\n */\n private function batchReadObjects(string $objectType, array $crmIds, array $fields): array\n {\n if (empty($crmIds)) {\n return [];\n }\n\n $this->validateBatchSize($objectType, $crmIds);\n $this->ensureValidToken();\n\n try {\n $batchConfig = $this->createBatchConfiguration($objectType);\n $batchReadRequest = $this->prepareBatchRequest($batchConfig, $crmIds, $fields);\n $response = $batchConfig['api']->read($batchReadRequest);\n\n $this->validateApiResponse($response, $objectType);\n\n $results = $this->processApiResults($response);\n $this->logBatchResults($objectType, $crmIds, $results);\n\n return $results;\n } catch (\\Throwable $e) {\n $this->handleBatchError($e, $objectType, $crmIds);\n }\n }\n\n private function validateBatchSize(string $objectType, array $crmIds): void\n {\n if (count($crmIds) > 100) {\n throw new \\InvalidArgumentException(\"Batch size cannot exceed 100 {$objectType}\");\n }\n }\n\n private function createBatchConfiguration(string $objectType): array\n {\n $configurations = [\n 'deals' => [\n 'batchReadRequest' => new \\HubSpot\\Client\\Crm\\Deals\\Model\\BatchReadInputSimplePublicObjectId(),\n 'inputClass' => \\HubSpot\\Client\\Crm\\Deals\\Model\\SimplePublicObjectId::class,\n 'api' => $this->getNewInstance()->crm()->deals()->batchApi(),\n ],\n 'companies' => [\n 'batchReadRequest' => new \\HubSpot\\Client\\Crm\\Companies\\Model\\BatchReadInputSimplePublicObjectId(),\n 'inputClass' => \\HubSpot\\Client\\Crm\\Companies\\Model\\SimplePublicObjectId::class,\n 'api' => $this->getNewInstance()->crm()->companies()->batchApi(),\n ],\n 'contacts' => [\n 'batchReadRequest' => new \\HubSpot\\Client\\Crm\\Contacts\\Model\\BatchReadInputSimplePublicObjectId(),\n 'inputClass' => \\HubSpot\\Client\\Crm\\Contacts\\Model\\SimplePublicObjectId::class,\n 'api' => $this->getNewInstance()->crm()->contacts()->batchApi(),\n ],\n ];\n\n if (! isset($configurations[$objectType])) {\n throw new \\InvalidArgumentException(\"Unsupported object type: {$objectType}\");\n }\n\n return $configurations[$objectType];\n }\n\n private function prepareBatchRequest(array $batchConfig, array $crmIds, array $fields): object\n {\n $batchReadRequest = $batchConfig['batchReadRequest'];\n $inputClass = $batchConfig['inputClass'];\n\n $inputs = array_map(function ($crmId) use ($inputClass) {\n $input = new $inputClass();\n $input->setId($crmId);\n\n return $input;\n }, $crmIds);\n\n $batchReadRequest->setInputs($inputs);\n $batchReadRequest->setProperties($fields);\n\n return $batchReadRequest;\n }\n\n private function validateApiResponse($response, string $objectType): void\n {\n if (! $response) {\n throw new CrmException(\"HubSpot API returned null response for {$objectType} batch read\");\n }\n }\n\n private function processApiResults($response): array\n {\n $results = [];\n $responseResults = $response->getResults();\n\n if ($responseResults) {\n foreach ($responseResults as $object) {\n if ($object && $object->getId()) {\n $results[$object->getId()] = [\n 'id' => $object->getId(),\n 'properties' => $object->getProperties() ?: [],\n ];\n }\n }\n }\n\n return $results;\n }\n\n private function logBatchResults(string $objectType, array $crmIds, array $results): void\n {\n $this->log->info(\"[HubSpot] Batch fetched {$objectType}\", [\n 'requested_count' => count($crmIds),\n 'returned_count' => count($results),\n 'crm_ids' => $crmIds,\n ]);\n }\n\n private function handleBatchError(\\Throwable $e, string $objectType, array $crmIds): void\n {\n $errorMessage = $e->getMessage() ?: 'Unknown error';\n $errorTrace = $e->getTraceAsString() ?: 'No trace available';\n\n $this->log->error(\"[HubSpot] Failed to batch fetch {$objectType}\", [\n 'crm_ids' => $crmIds,\n 'error' => $errorMessage,\n 'trace' => $errorTrace,\n ]);\n\n throw new CrmException(\"Failed to batch fetch {$objectType}: \" . $errorMessage);\n }\n\n /**\n * Batch read multiple opportunities by their CRM IDs\n *\n * @param array<string> $crmIds Array of HubSpot deal IDs (max 100)\n * @param array<string> $fields Array of property names to fetch\n *\n * @return array<string, array> Array keyed by CRM ID with opportunity data\n */\n public function getOpportunitiesByIds(array $crmIds, array $fields): array\n {\n return $this->batchReadObjects('deals', $crmIds, $fields);\n }\n\n /**\n * Batch read multiple companies by their CRM IDs\n *\n * @param array<string> $crmIds Array of HubSpot company IDs (max 100)\n * @param array<string> $fields Array of property names to fetch\n *\n * @return array<string, array> Array keyed by CRM ID with company data\n */\n public function getCompaniesByIds(array $crmIds, array $fields): array\n {\n return $this->batchReadObjects('companies', $crmIds, $fields);\n }\n\n /**\n * Batch read multiple contacts by their CRM IDs\n *\n * @param array<string> $crmIds Array of HubSpot contact IDs (max 100)\n * @param array<string> $fields Array of property names to fetch\n *\n * @return array<string, array> Array keyed by CRM ID with contact data\n */\n public function getContactsByIds(array $crmIds, array $fields): array\n {\n return $this->batchReadObjects('contacts', $crmIds, $fields);\n }\n\n /**\n * @throws CompanyApiException\n * @throws CrmException\n */\n public function getAccountById(string $crmId, array $fields): array\n {\n try {\n $company = $this->getNewInstance()->crm()->companies()->basicApi()->getById(\n $crmId,\n implode(',', $fields),\n );\n } catch (CompanyApiException $e) {\n $this->log->info('[Hubspot] Failed to fetch account', [\n 'crm_id' => $crmId,\n 'reason' => $e->getMessage(),\n ]);\n\n throw $e;\n }\n\n if (! $company instanceof CompaniesWithAssociations) {\n throw new CrmException('Account not found');\n }\n\n return [\n 'id' => $company->getId(),\n 'properties' => $company->getProperties(),\n ];\n }\n\n /**\n * @throws ContactApiException\n * @throws CrmException\n */\n public function getContactById(string $crmId, array $fields): array\n {\n try {\n $contact = $this->getNewInstance()->crm()->contacts()->basicApi()->getById(\n $crmId,\n implode(',', $fields)\n );\n } catch (ContactApiException $e) {\n $this->log->info('[Hubspot] Failed to fetch contact', [\n 'crm_id' => $crmId,\n 'reason' => $e->getMessage(),\n ]);\n\n throw $e;\n }\n\n if (! $contact instanceof ContactsWithAssociations) {\n throw new CrmException('Contact not found');\n }\n\n return [\n 'id' => $contact->getId(),\n 'properties' => $contact->getProperties(),\n ];\n }\n\n /**\n * This is email search request that Hubspot offers as GET (more generous quota)\n */\n public function getContactByEmail(string $email, array $fields = []): array\n {\n try {\n $contact = $this->getNewInstance()->crm()->contacts()->basicApi()->getById(\n $email,\n implode(',', $fields),\n null,\n false,\n 'email'\n );\n\n return [\n 'id' => $contact->getId(),\n 'properties' => $contact->getProperties(),\n ];\n } catch (ContactApiException $e) {\n $this->log->info('[Hubspot] Failed to fetch contact', [\n 'email' => $email,\n 'reason' => $e->getMessage(),\n ]);\n\n return [];\n }\n }\n\n /**\n * @throws CrmException\n */\n public function fetchProperty(string $objectType, string $propertyId): Property\n {\n $result = $this->getNewInstance()->crm()->properties()->coreApi()->getByName($objectType, $propertyId);\n\n if (! $result instanceof Property) {\n $this->log->error('[Hubspot] Failed to fetch property', [\n 'object_type' => $objectType,\n 'property_id' => $propertyId,\n 'reason' => $result->getMessage(),\n ]);\n\n throw new CrmException('Failed to fetch property');\n }\n\n return $result;\n }\n\n /**\n * @return array<CrmFieldOption>\n */\n public function fetchPropertyOptions(string $objectType, string $propertyId): array\n {\n /** @var array<CrmFieldOption> */\n return $this->fetchProperty($objectType, $propertyId)->getOptions();\n }\n\n /**\n * @return array<array{id:string, label:string, deleted:bool}>\n */\n public function fetchCallDispositions(): array\n {\n /** @var Response $response */\n $response = $this->getInstance()->engagements()->getCallDispositions();\n\n /**\n * @var array<array{\n * id:string,\n * label:string,\n * deleted: bool\n * }>\n */\n return $response->toArray();\n }\n\n /**\n * @return array<CrmFieldOption>\n */\n public function fetchOpportunityPipelineStages(): array\n {\n $stages = [];\n $apiResponse = $this->getNewInstance()->crm()->pipelines()->pipelinesApi()->getAll('deals');\n\n if ($apiResponse instanceof Error) {\n $this->log->error('[Hubspot] Failed to fetch opportunity pipelines', [\n 'reason' => $apiResponse->getMessage(),\n ]);\n\n return [];\n }\n\n foreach ($apiResponse->getResults() as $pipeline) {\n $pipelineStages = array_map(\n static function (PipelineStage $stage) {\n return [\n 'id' => $stage->getId(),\n 'label' => $stage->getLabel(),\n ];\n },\n $pipeline->getStages()\n );\n\n $stages = array_merge($stages, $pipelineStages);\n }\n\n return $stages;\n }\n\n public function fetchOpportunityPipelines(): array\n {\n $pipelines = [];\n\n try {\n $apiResponse = $this->makeRequest('/crm/v3/pipelines/deals');\n } catch (\\Exception $e) {\n $this->log->info('[Hubspot] Failed to fetch opportunity pipelines', [\n 'reason' => $e->getMessage(),\n ]);\n\n return [];\n }\n\n $response = $apiResponse->toArray();\n\n foreach ($response['results'] as $pipeline) {\n $pipelines[] = [\n 'id' => $pipeline['id'],\n 'label' => $pipeline['label'],\n ];\n }\n\n return $pipelines;\n }\n\n /**\n * @return array<CrmFieldOption>\n */\n public function fetchMeetingOutcomeFieldOptions(Field $field): array\n {\n return $field->getCrmProviderId() === 'meetingOutcome'\n ? $this->fetchMeetingOutcomeTypes()\n : $this->fetchCallActivityTypes();\n }\n\n public function fetchMeetingOutcomeTypes(): array\n {\n return $this->extractMeetingTypeOptions(\n 'https://api.hubapi.com/crm/v3/properties/meeting/hs_meeting_outcome'\n );\n }\n\n public function fetchCallActivityTypes(): array\n {\n return $this->extractMeetingTypeOptions(\n 'https://api.hubapi.com/crm/v3/properties/call/hs_activity_type'\n );\n }\n\n private function extractMeetingTypeOptions(string $endpoint): array\n {\n /** @var Response $response */\n $response = $this->getInstance()\n ->getClient()\n ->request('GET', $endpoint);\n\n /**\n * @var array<array{\n * value: string,\n * label: string,\n * displayOrder: int\n * }> $optionData\n */\n $optionData = $response->toArray()['options'] ?? [];\n\n $options = [];\n foreach ($optionData as $item) {\n $options[] = [\n 'id' => $item['value'],\n 'value' => $item['value'],\n 'label' => $item['label'],\n 'display_order' => $item['displayOrder'],\n ];\n }\n\n return $options;\n }\n\n /**\n * @return array<CrmFieldOption>\n */\n public function fetchDispositionFieldOptions(): array\n {\n $options = [];\n\n $dispositions = $this->fetchCallDispositions();\n\n foreach ($dispositions as $disposition) {\n if ($disposition['deleted'] !== false) {\n continue;\n }\n\n $option['value'] = $disposition['id'];\n $option['id'] = $disposition['id'];\n $option['label'] = $disposition['label'];\n\n $options[] = $option;\n }\n\n return $options;\n }\n\n /**\n * @return array<CrmFieldOption>\n */\n public function fetchOpportunityFieldOptions(Field $field): array\n {\n if ($field->isStageField()) {\n return $this->fetchOpportunityPipelineStages();\n }\n\n if ($field->isPipelineField()) {\n return $this->fetchOpportunityPipelines();\n }\n\n return $this->fetchPropertyOptions('deals', $field->getCrmProviderId());\n }\n\n /**\n * @throws BadRequest\n * @throws HubspotException\n */\n public function makeRequest(string $endpoint, $method = 'GET', $payload = [], ?string $queryString = null)\n {\n $endpoint = self::BASE_URL . $endpoint;\n\n if ($method === 'GET') {\n return $this->getInstance()->getClient()?->request(\n method: $method,\n endpoint: $endpoint,\n query_string: $queryString\n );\n } else {\n return $this->getInstance()->getClient()->request($method, $endpoint, [\n 'json' => ($payload),\n ]);\n }\n }\n\n /**\n * @throws BadRequest\n * @throws HubspotException\n */\n public function createMeeting(array $payload): Response\n {\n $endpoint = '/crm/v3/objects/meetings';\n\n return $this->makeRequest($endpoint, 'POST', $payload);\n }\n\n /**\n * @throws BadRequest\n * @throws HubspotException\n */\n public function updateMeeting(string $meetingId, array $payload): Response\n {\n $endpoint = '/crm/v3/objects/meetings/' . $meetingId;\n\n return $this->makeRequest($endpoint, 'PATCH', $payload);\n }\n\n /**\n * @throws \\Exception\n */\n public function createNote(\n string $body,\n string $ownerId,\n int $timestamp,\n string $objectId,\n NoteObject $noteObject\n ): ?string {\n try {\n $noteInput = new SimplePublicObjectInput([\n 'properties' => [\n 'hs_note_body' => $body,\n 'hubspot_owner_id' => $ownerId,\n 'hs_timestamp' => $timestamp,\n ],\n ]);\n\n // Create note\n $note = $this->getNewInstance()->crm()->objects()->basicApi()->create('note', $noteInput);\n\n $this->getNewInstance()->crm()->objects()->associationsApi()->create(\n 'note',\n $note->getId(),\n $this->getNoteObject($noteObject),\n $objectId,\n $this->getNoteAssociationType($noteObject),\n );\n\n return $note->getId();\n } catch (\\Exception $e) {\n $this->log->error('[Hubspot] Failed to create note', [\n 'objectId' => $objectId,\n 'noteObject' => $noteObject->getObjectType(),\n 'reason' => $e->getMessage(),\n ]);\n\n \\Sentry::captureException($e);\n }\n\n return null;\n }\n\n public function updateEngagement(string $objectId, array $engagement, array $metadata): void\n {\n $this->getInstance()->engagements()->update($objectId, $engagement, $metadata);\n }\n\n public function getEngagementData(string $engagementId): array\n {\n $engagement = $this->getInstance()->engagements()->get($engagementId);\n\n return $engagement->toArray();\n }\n\n public function createEngagement(array $engagement, array $associations, array $metadata): Response\n {\n return $this->getInstance()\n ->engagements()\n ->create($engagement, $associations, $metadata);\n }\n\n public function isUnauthorizedException(\\Exception $e): bool\n {\n // Check for specific HubSpot API exception types first\n if ($e instanceof BadRequest) {\n // BadRequest can contain 401 status codes\n return $e->getCode() === 401;\n }\n\n // Check for HTTP client exceptions with status codes\n if ($e instanceof \\GuzzleHttp\\Exception\\RequestException && $e->hasResponse()) {\n $response = $e->getResponse();\n if ($response !== null) {\n return $response->getStatusCode() === 401;\n }\n }\n\n // Check for Guzzle HTTP exceptions\n if ($e instanceof \\GuzzleHttp\\Exception\\ClientException) {\n return $e->getCode() === 401;\n }\n\n // Fallback to string matching as last resort, but be more specific\n $message = strtolower($e->getMessage());\n\n return str_contains($message, '401 unauthorized') ||\n str_contains($message, 'http 401') ||\n str_contains($message, 'status code 401') ||\n (preg_match('/\\b401\\b/', $message) && str_contains($message, 'unauthorized'));\n }\n\n /**\n * Validates and refreshes the access token if needed before API requests.\n * This ensures long-running processes don't fail due to token expiration.\n *\n * @throws SocialAccountTokenInvalidException\n */\n public function ensureValidToken(): void\n {\n if ($this->oauthAccount === null) {\n return;\n }\n\n $newToken = $this->tokenManager->ensureValidToken($this->oauthAccount);\n if ($newToken !== null) {\n $this->accessToken = $newToken;\n }\n }\n\n public function getConfig()\n {\n return $this->config;\n }\n\n // returns only active (archived=false)\n public function getOwners(): array\n {\n return $this->getNewInstance()->crm()->owners()->getAll();\n }\n\n /**\n * @param bool $archived\n *\n * @return array<Owner>|[]\n */\n public function getOwnersArchived(bool $archived = true): array\n {\n $endpoint = '/crm/v3/owners';\n $queryParams = [\n 'archived' => $archived ? 'true' : 'false',\n ];\n $queryString = http_build_query($queryParams);\n\n $owners = [];\n\n try {\n $response = $this->makeRequest(endpoint: $endpoint, queryString: $queryString);\n $responseData = $response?->toArray();\n\n foreach ($responseData['results'] as $result) {\n try {\n $owners[] = Owner::create($result);\n } catch (Throwable $e) {\n $this->log->error('[HubSpot] Failed to process owner data', [\n 'result' => $result,\n 'error' => $e->getMessage(),\n ]);\n\n continue;\n }\n }\n } catch (Throwable $e) {\n $this->log->error('HubSpot] Failed to fetch owners', [\n 'archived' => $archived,\n 'error' => $e->getMessage(),\n ]);\n\n return [];\n }\n\n return $owners;\n }\n\n public function getMeeting(string $engagementId): ObjectWithAssociations\n {\n return $this->getNewInstance()->crm()->objects()->basicApi()\n ->getById('meeting', $engagementId, null, 'contact,company,deal');\n }\n\n public function deleteEngagement(string $engagementId): void\n {\n $this->getInstance()->engagements()->delete((int) $engagementId);\n }\n\n public function getAssociationsData(array $ids, string $fromObject, string $toObject): array\n {\n $associationData = [];\n $idChunks = array_chunk($ids, self::ASSOCIATIONS_BATCH_SIZE_LIMIT);\n\n foreach ($idChunks as $idChunk) {\n try {\n $batchInput = new \\HubSpot\\Client\\Crm\\Associations\\Model\\BatchInputPublicObjectId();\n $batchInput->setInputs(array_map(function ($id) {\n $publicObjectId = new \\HubSpot\\Client\\Crm\\Associations\\Model\\PublicObjectId();\n $publicObjectId->setId($id);\n\n return $publicObjectId;\n }, $idChunk));\n\n $associatedObjectsData = $this\n ->getNewInstance()\n ->crm()\n ->associations()\n ->batchApi()\n ->read($fromObject, $toObject, $batchInput);\n\n if ($associatedObjectsData instanceof \\HubSpot\\Client\\Crm\\Associations\\Model\\BatchResponsePublicAssociationMulti) {\n foreach ($associatedObjectsData->getResults() as $association) {\n $from = $association->getFrom()->getId();\n $toAssociations = $association->getTo();\n\n if (! empty($toAssociations)) {\n $associationData[$from] = array_map(function ($item) {\n return $item->getId();\n }, $toAssociations);\n }\n }\n }\n// } catch (RateLimitException $e) {\n// throw $e;\n } catch (\\Exception $e) {\n $this->log->error('[Hubspot] Failed to fetch associations', [\n 'from_object' => $fromObject,\n 'to_object' => $toObject,\n 'reason' => $e->getMessage(),\n ]);\n }\n }\n\n return $associationData;\n }\n\n /**\n * @throws \\Exception\n */\n private function getNoteAssociationType(NoteObject $noteObject): string\n {\n return match($noteObject) {\n NoteObject::Opportunity => 'note_to_deal',\n NoteObject::Lead, NoteObject::Contact => 'note_to_contact', // or 'note_to_lead' if your portal supports it\n NoteObject::Account => 'note_to_company',\n NoteObject::Call, NoteObject::Event => throw new \\Exception('Not supported'),\n };\n }\n\n /**\n * @throws \\Exception\n */\n private function getNoteObject(NoteObject $noteObject): string\n {\n return match($noteObject) {\n NoteObject::Opportunity => 'deal',\n NoteObject::Lead, NoteObject::Contact => 'contact',\n NoteObject::Account => 'company',\n NoteObject::Call, NoteObject::Event => throw new \\Exception('Not supported'),\n };\n }\n\n public function addAssociations(string $objectType, string $associationType, array $payload): Response\n {\n $endpoint = \"/crm/v4/associations/$objectType/$associationType/batch/create\";\n\n return $this->makeRequest($endpoint, 'POST', $payload);\n }\n\n public function removeAssociations(string $objectType, string $associationType, array $payload): Response\n {\n $endpoint = \"/crm/v4/associations/$objectType/$associationType/batch/archive\";\n\n return $this->makeRequest($endpoint, 'POST', $payload);\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":true,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Show Replace Field","depth":4,"bounds":{"left":0.5575133,"top":0.08060654,"width":0.008643617,"height":0.01915403},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Search History","depth":3,"bounds":{"left":0.57014626,"top":0.07980846,"width":0.00731383,"height":0.017557861},"on_screen":true,"role_description":"checkbox","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"429","depth":4,"bounds":{"left":0.58111703,"top":0.07980846,"width":0.077792555,"height":0.015961692},"on_screen":true,"value":"429","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"New Line","depth":3,"bounds":{"left":0.66788566,"top":0.07980846,"width":0.00731383,"height":0.017557861},"on_screen":true,"role_description":"checkbox","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Match Case","depth":3,"bounds":{"left":0.67785907,"top":0.07980846,"width":0.00731383,"height":0.017557861},"on_screen":true,"role_description":"checkbox","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Words","depth":3,"bounds":{"left":0.68650264,"top":0.07980846,"width":0.00731383,"height":0.017557861},"on_screen":true,"role_description":"checkbox","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Regex","depth":3,"bounds":{"left":0.69514626,"top":0.07980846,"width":0.00731383,"height":0.017557861},"on_screen":true,"role_description":"checkbox","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Replace History","depth":3,"bounds":{"left":0.27027926,"top":1.0,"width":0.00731383,"height":0.0},"on_screen":false,"role_description":"checkbox","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextField","text":"Replace","depth":4,"on_screen":false,"role_description":"text field","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"New Line","depth":3,"bounds":{"left":0.27027926,"top":1.0,"width":0.00731383,"height":0.0},"on_screen":false,"role_description":"checkbox","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Preserve case","depth":3,"bounds":{"left":0.27027926,"top":1.0,"width":0.00731383,"height":0.0},"on_screen":false,"role_description":"checkbox","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"1/4","depth":4,"bounds":{"left":0.7087766,"top":0.079010375,"width":0.025598405,"height":0.017557861},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Occurrence","depth":4,"bounds":{"left":0.734375,"top":0.07821229,"width":0.008643617,"height":0.01915403},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Next Occurrence","depth":4,"bounds":{"left":0.7430186,"top":0.07821229,"width":0.008643617,"height":0.01915403},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Filter Search Results","depth":4,"bounds":{"left":0.75166225,"top":0.07821229,"width":0.008643617,"height":0.01915403},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Open in Window, Multiple Cursors","depth":4,"bounds":{"left":0.7603058,"top":0.07821229,"width":0.008643617,"height":0.01915403},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Click to highlight","depth":4,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close","depth":4,"bounds":{"left":0.97539896,"top":0.07821229,"width":0.008643617,"height":0.01915403},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.042220745,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"54","depth":4,"bounds":{"left":0.96210104,"top":0.10933759,"width":0.010305851,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"bounds":{"left":0.9740692,"top":0.10774142,"width":0.00731383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Next Highlighted Error","depth":4,"bounds":{"left":0.98138297,"top":0.10774142,"width":0.006981383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"[2026-05-11 11:08:45] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"43b1fb67-9aac-4fc6-9ced-689ecda5c548\",\"trace_id\":\"60028d0e-dcd8-496a-a7ba-3a04b8d646e2\"}\n[2026-05-11 11:08:45] local.INFO: [Commands/AsyncUpdateEsEntities] Starting ES update worker {\"pid\":72650,\"workerId\":\"\",\"target\":\"activities\"} {\"correlation_id\":\"6d49ffdc-2ed7-4eae-a1ee-e25ca95bbea8\",\"trace_id\":\"906573b5-005c-4820-8a32-3b0703ea86dd\"}\n[2026-05-11 11:08:46] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"43b1fb67-9aac-4fc6-9ced-689ecda5c548\",\"trace_id\":\"60028d0e-dcd8-496a-a7ba-3a04b8d646e2\"}\n[2026-05-11 11:09:12] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":615092,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"correlation_id\":\"f33d47cb-76c6-4c27-a641-48cbf69e623d\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:12] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":615092} {\"correlation_id\":\"f33d47cb-76c6-4c27-a641-48cbf69e623d\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:12] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":615092,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"f33d47cb-76c6-4c27-a641-48cbf69e623d\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:12] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":615092,\"participants\":[{\"id\":1004102,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":1004103,\"user_id\":89,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"f33d47cb-76c6-4c27-a641-48cbf69e623d\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:12] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f33d47cb-76c6-4c27-a641-48cbf69e623d\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:12] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f33d47cb-76c6-4c27-a641-48cbf69e623d\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:12] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"f33d47cb-76c6-4c27-a641-48cbf69e623d\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:12] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"f33d47cb-76c6-4c27-a641-48cbf69e623d\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:12] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"f33d47cb-76c6-4c27-a641-48cbf69e623d\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:13] local.INFO: [Hubspot] Failed to fetch contact {\"email\":\"nikolay.nikolov@jiminny.com\",\"reason\":\"[404] Client error: `GET https://api.hubapi.com/crm/v3/objects/contacts/nikolay.nikolov%40jiminny.com?properties=email%2Cfirstname%2Clastname%2Ccountry%2Cphone%2Cmobilephone%2Cjobtitle%2Chubspot_owner_id%2Cassociatedcompanyid%2Cphoto&archived=0&idProperty=email` resulted in a `404 Not Found` response\"} {\"correlation_id\":\"f33d47cb-76c6-4c27-a641-48cbf69e623d\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:13] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"f33d47cb-76c6-4c27-a641-48cbf69e623d\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:13] local.WARNING: [Hubspot] No retry-after header or known message, using default {\"exception_class\":\"SevenShores\\\\Hubspot\\\\Exceptions\\\\BadRequest\",\"message\":\"\"} {\"correlation_id\":\"f33d47cb-76c6-4c27-a641-48cbf69e623d\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:13] local.WARNING: [Hubspot] Received 429 from API {\"team_id\":2,\"config_id\":2,\"retry_after\":10,\"message\":\"\",\"reason\":\"Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response:\n{\\\"status\\\":\\\"error\\\",\\\"message\\\":\\\"You have reached your secondly limit.\\\",\\\"errorType\\\":\\\"RATE_LIMIT\\\",\\\"correlationId\\\":\\\"019e16ba-1 (truncated...)\n\"} {\"correlation_id\":\"f33d47cb-76c6-4c27-a641-48cbf69e623d\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:13] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":10,\"delay\":12} {\"correlation_id\":\"f33d47cb-76c6-4c27-a641-48cbf69e623d\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":614436,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"correlation_id\":\"ccafe863-7885-4971-96fb-87ef6dd4adf3\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614436} {\"correlation_id\":\"ccafe863-7885-4971-96fb-87ef6dd4adf3\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614436,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ccafe863-7885-4971-96fb-87ef6dd4adf3\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":614436,\"participants\":[{\"id\":1002751,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":1002752,\"user_id\":89,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"ccafe863-7885-4971-96fb-87ef6dd4adf3\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ccafe863-7885-4971-96fb-87ef6dd4adf3\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ccafe863-7885-4971-96fb-87ef6dd4adf3\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ccafe863-7885-4971-96fb-87ef6dd4adf3\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ccafe863-7885-4971-96fb-87ef6dd4adf3\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"ccafe863-7885-4971-96fb-87ef6dd4adf3\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"ccafe863-7885-4971-96fb-87ef6dd4adf3\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":10,\"delay\":10} {\"correlation_id\":\"ccafe863-7885-4971-96fb-87ef6dd4adf3\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":614382,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"correlation_id\":\"f00a4506-adfe-4fdc-b932-e6d2bc751fde\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614382} {\"correlation_id\":\"f00a4506-adfe-4fdc-b932-e6d2bc751fde\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614382,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"f00a4506-adfe-4fdc-b932-e6d2bc751fde\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":614382,\"participants\":[{\"id\":1002632,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":1002633,\"user_id\":89,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"f00a4506-adfe-4fdc-b932-e6d2bc751fde\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f00a4506-adfe-4fdc-b932-e6d2bc751fde\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f00a4506-adfe-4fdc-b932-e6d2bc751fde\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"f00a4506-adfe-4fdc-b932-e6d2bc751fde\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"f00a4506-adfe-4fdc-b932-e6d2bc751fde\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"f00a4506-adfe-4fdc-b932-e6d2bc751fde\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"f00a4506-adfe-4fdc-b932-e6d2bc751fde\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":10,\"delay\":12} {\"correlation_id\":\"f00a4506-adfe-4fdc-b932-e6d2bc751fde\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":614381,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"correlation_id\":\"36bd73f5-17f9-4f70-8254-2214543c7f8e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614381} {\"correlation_id\":\"36bd73f5-17f9-4f70-8254-2214543c7f8e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614381,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"36bd73f5-17f9-4f70-8254-2214543c7f8e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":614381,\"participants\":[{\"id\":1002630,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":1002631,\"user_id\":89,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"36bd73f5-17f9-4f70-8254-2214543c7f8e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"36bd73f5-17f9-4f70-8254-2214543c7f8e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"36bd73f5-17f9-4f70-8254-2214543c7f8e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"36bd73f5-17f9-4f70-8254-2214543c7f8e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"36bd73f5-17f9-4f70-8254-2214543c7f8e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"36bd73f5-17f9-4f70-8254-2214543c7f8e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"36bd73f5-17f9-4f70-8254-2214543c7f8e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":10,\"delay\":10} {\"correlation_id\":\"36bd73f5-17f9-4f70-8254-2214543c7f8e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":614378,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":6167,\"account_id\":null,\"opportunity_id\":null,\"stage_id\":null}} {\"correlation_id\":\"a4a3a058-ec22-4f04-bb14-a9bff18ce214\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614378} {\"correlation_id\":\"a4a3a058-ec22-4f04-bb14-a9bff18ce214\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614378,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a4a3a058-ec22-4f04-bb14-a9bff18ce214\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":614378,\"participants\":[{\"id\":1002623,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":1002624,\"user_id\":null,\"contact_id\":6167,\"lead_id\":null},{\"id\":1002625,\"user_id\":89,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"a4a3a058-ec22-4f04-bb14-a9bff18ce214\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a4a3a058-ec22-4f04-bb14-a9bff18ce214\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a4a3a058-ec22-4f04-bb14-a9bff18ce214\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"a4a3a058-ec22-4f04-bb14-a9bff18ce214\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"a4a3a058-ec22-4f04-bb14-a9bff18ce214\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"a4a3a058-ec22-4f04-bb14-a9bff18ce214\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"a4a3a058-ec22-4f04-bb14-a9bff18ce214\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":10,\"delay\":12} {\"correlation_id\":\"a4a3a058-ec22-4f04-bb14-a9bff18ce214\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613840,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613840} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613840,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613840,\"participants\":[{\"id\":1001764,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1001765,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":261} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":299} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613840,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613840,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613840} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613840,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613840,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"d86caa21-8980-460b-b2be-88292956cdb3\",\"trace_id\":\"6f80ed90-fa59-444e-a016-33a62019c6a4\"}\n[2026-05-11 11:09:15] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613833,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"ed230e3b-8ded-4591-bfe7-d4ead6f411c1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613833} {\"correlation_id\":\"ed230e3b-8ded-4591-bfe7-d4ead6f411c1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613833,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ed230e3b-8ded-4591-bfe7-d4ead6f411c1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613833,\"participants\":[{\"id\":1001750,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1001751,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"ed230e3b-8ded-4591-bfe7-d4ead6f411c1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"d86caa21-8980-460b-b2be-88292956cdb3\",\"trace_id\":\"6f80ed90-fa59-444e-a016-33a62019c6a4\"}\n[2026-05-11 11:09:15] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"d86caa21-8980-460b-b2be-88292956cdb3\",\"trace_id\":\"6f80ed90-fa59-444e-a016-33a62019c6a4\"}\n[2026-05-11 11:09:15] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ed230e3b-8ded-4591-bfe7-d4ead6f411c1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ed230e3b-8ded-4591-bfe7-d4ead6f411c1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ed230e3b-8ded-4591-bfe7-d4ead6f411c1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ed230e3b-8ded-4591-bfe7-d4ead6f411c1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"ed230e3b-8ded-4591-bfe7-d4ead6f411c1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613833,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"ed230e3b-8ded-4591-bfe7-d4ead6f411c1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613833,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"ed230e3b-8ded-4591-bfe7-d4ead6f411c1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613833} {\"correlation_id\":\"ed230e3b-8ded-4591-bfe7-d4ead6f411c1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613833,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ed230e3b-8ded-4591-bfe7-d4ead6f411c1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613833,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"ed230e3b-8ded-4591-bfe7-d4ead6f411c1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613827,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"d165f8f2-23f6-4f9a-90e7-7b600066818c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613827} {\"correlation_id\":\"d165f8f2-23f6-4f9a-90e7-7b600066818c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613827,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d165f8f2-23f6-4f9a-90e7-7b600066818c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613827,\"participants\":[{\"id\":1001734,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1001735,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"d165f8f2-23f6-4f9a-90e7-7b600066818c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d165f8f2-23f6-4f9a-90e7-7b600066818c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d165f8f2-23f6-4f9a-90e7-7b600066818c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"d165f8f2-23f6-4f9a-90e7-7b600066818c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"d165f8f2-23f6-4f9a-90e7-7b600066818c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"d165f8f2-23f6-4f9a-90e7-7b600066818c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613827,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"d165f8f2-23f6-4f9a-90e7-7b600066818c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613827,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"d165f8f2-23f6-4f9a-90e7-7b600066818c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613827} {\"correlation_id\":\"d165f8f2-23f6-4f9a-90e7-7b600066818c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613827,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d165f8f2-23f6-4f9a-90e7-7b600066818c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613827,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"d165f8f2-23f6-4f9a-90e7-7b600066818c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613826,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"1816f96e-c36b-474a-8f46-bc8c71bb0079\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613826} {\"correlation_id\":\"1816f96e-c36b-474a-8f46-bc8c71bb0079\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613826,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1816f96e-c36b-474a-8f46-bc8c71bb0079\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613826,\"participants\":[{\"id\":1001732,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1001733,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"1816f96e-c36b-474a-8f46-bc8c71bb0079\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1816f96e-c36b-474a-8f46-bc8c71bb0079\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1816f96e-c36b-474a-8f46-bc8c71bb0079\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1816f96e-c36b-474a-8f46-bc8c71bb0079\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1816f96e-c36b-474a-8f46-bc8c71bb0079\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"1816f96e-c36b-474a-8f46-bc8c71bb0079\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613826,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"1816f96e-c36b-474a-8f46-bc8c71bb0079\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613826,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"1816f96e-c36b-474a-8f46-bc8c71bb0079\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613826} {\"correlation_id\":\"1816f96e-c36b-474a-8f46-bc8c71bb0079\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613826,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1816f96e-c36b-474a-8f46-bc8c71bb0079\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613826,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"1816f96e-c36b-474a-8f46-bc8c71bb0079\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613820,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"a2b1cf94-6665-4574-a821-fcd845d290dc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613820} {\"correlation_id\":\"a2b1cf94-6665-4574-a821-fcd845d290dc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613820,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a2b1cf94-6665-4574-a821-fcd845d290dc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613820,\"participants\":[{\"id\":1001721,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1001722,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"a2b1cf94-6665-4574-a821-fcd845d290dc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a2b1cf94-6665-4574-a821-fcd845d290dc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a2b1cf94-6665-4574-a821-fcd845d290dc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"a2b1cf94-6665-4574-a821-fcd845d290dc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"a2b1cf94-6665-4574-a821-fcd845d290dc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"a2b1cf94-6665-4574-a821-fcd845d290dc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613820,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"a2b1cf94-6665-4574-a821-fcd845d290dc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613820,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"a2b1cf94-6665-4574-a821-fcd845d290dc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613820} {\"correlation_id\":\"a2b1cf94-6665-4574-a821-fcd845d290dc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613820,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a2b1cf94-6665-4574-a821-fcd845d290dc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613820,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"a2b1cf94-6665-4574-a821-fcd845d290dc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613818,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"7194ba37-7af3-4aa0-80a3-14b38431fd39\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613818} {\"correlation_id\":\"7194ba37-7af3-4aa0-80a3-14b38431fd39\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613818,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7194ba37-7af3-4aa0-80a3-14b38431fd39\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613818,\"participants\":[{\"id\":1001717,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1001718,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"7194ba37-7af3-4aa0-80a3-14b38431fd39\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7194ba37-7af3-4aa0-80a3-14b38431fd39\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7194ba37-7af3-4aa0-80a3-14b38431fd39\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7194ba37-7af3-4aa0-80a3-14b38431fd39\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"7194ba37-7af3-4aa0-80a3-14b38431fd39\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"7194ba37-7af3-4aa0-80a3-14b38431fd39\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613818,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"7194ba37-7af3-4aa0-80a3-14b38431fd39\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613818,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"7194ba37-7af3-4aa0-80a3-14b38431fd39\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613818} {\"correlation_id\":\"7194ba37-7af3-4aa0-80a3-14b38431fd39\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613818,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7194ba37-7af3-4aa0-80a3-14b38431fd39\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613818,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"7194ba37-7af3-4aa0-80a3-14b38431fd39\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613812,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"1fe899e0-6ad7-4159-b5f9-6f34b32d31d6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613812} {\"correlation_id\":\"1fe899e0-6ad7-4159-b5f9-6f34b32d31d6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613812,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1fe899e0-6ad7-4159-b5f9-6f34b32d31d6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613812,\"participants\":[{\"id\":1001705,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1001706,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"1fe899e0-6ad7-4159-b5f9-6f34b32d31d6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1fe899e0-6ad7-4159-b5f9-6f34b32d31d6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1fe899e0-6ad7-4159-b5f9-6f34b32d31d6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1fe899e0-6ad7-4159-b5f9-6f34b32d31d6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1fe899e0-6ad7-4159-b5f9-6f34b32d31d6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"1fe899e0-6ad7-4159-b5f9-6f34b32d31d6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613812,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"1fe899e0-6ad7-4159-b5f9-6f34b32d31d6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613812,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"1fe899e0-6ad7-4159-b5f9-6f34b32d31d6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613812} {\"correlation_id\":\"1fe899e0-6ad7-4159-b5f9-6f34b32d31d6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613812,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1fe899e0-6ad7-4159-b5f9-6f34b32d31d6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613812,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"1fe899e0-6ad7-4159-b5f9-6f34b32d31d6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613807,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4484,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613807} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613807,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613807,\"participants\":[{\"id\":1001690,\"user_id\":253,\"contact_id\":null,\"lead_id\":null},{\"id\":1001691,\"user_id\":null,\"contact_id\":4484,\"lead_id\":null}]} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613807,\"team_id\":2,\"email\":\"preslava.ivanova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":243,\"contact_id\":4484,\"owner_id\":253} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":243,\"contact_id\":4484} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":243,\"contact_id\":4484,\"opportunity_id\":276} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":1.06,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"6d49ffdc-2ed7-4eae-a1ee-e25ca95bbea8\",\"trace_id\":\"906573b5-005c-4820-8a32-3b0703ea86dd\"}\n[2026-05-11 11:09:17] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"tsvetomir.banovski@gmail.com\"} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613807,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613807} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613807,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613807,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4484,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613806,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34}} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613806} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613806,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613806,\"participants\":[{\"id\":1001688,\"user_id\":253,\"contact_id\":null,\"lead_id\":null},{\"id\":1001689,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null}]} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613806,\"team_id\":2,\"email\":\"preslava.ivanova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":253} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":244,\"contact_id\":4487} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":350} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613806,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613806} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613806,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613806,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613805,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34}} {\"correlation_id\":\"e6a724a6-dc6e-4440-ab48-641336d6ca17\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613805} {\"correlation_id\":\"e6a724a6-dc6e-4440-ab48-641336d6ca17\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613805,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e6a724a6-dc6e-4440-ab48-641336d6ca17\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613805,\"participants\":[{\"id\":1001686,\"user_id\":253,\"contact_id\":null,\"lead_id\":null},{\"id\":1001687,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null}]} {\"correlation_id\":\"e6a724a6-dc6e-4440-ab48-641336d6ca17\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e6a724a6-dc6e-4440-ab48-641336d6ca17\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e6a724a6-dc6e-4440-ab48-641336d6ca17\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"e6a724a6-dc6e-4440-ab48-641336d6ca17\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"e6a724a6-dc6e-4440-ab48-641336d6ca17\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613805,\"team_id\":2,\"email\":\"preslava.ivanova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"e6a724a6-dc6e-4440-ab48-641336d6ca17\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"e6a724a6-dc6e-4440-ab48-641336d6ca17\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613805,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"e6a724a6-dc6e-4440-ab48-641336d6ca17\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613805} {\"correlation_id\":\"e6a724a6-dc6e-4440-ab48-641336d6ca17\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613805,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e6a724a6-dc6e-4440-ab48-641336d6ca17\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613805,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34} {\"correlation_id\":\"e6a724a6-dc6e-4440-ab48-641336d6ca17\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613698,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"67158d25-23dc-4314-8813-caa3c43fa3f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613698} {\"correlation_id\":\"67158d25-23dc-4314-8813-caa3c43fa3f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613698,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"67158d25-23dc-4314-8813-caa3c43fa3f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613698,\"participants\":[{\"id\":1001667,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1001668,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"67158d25-23dc-4314-8813-caa3c43fa3f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"67158d25-23dc-4314-8813-caa3c43fa3f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"67158d25-23dc-4314-8813-caa3c43fa3f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"67158d25-23dc-4314-8813-caa3c43fa3f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"67158d25-23dc-4314-8813-caa3c43fa3f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"67158d25-23dc-4314-8813-caa3c43fa3f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613698,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"67158d25-23dc-4314-8813-caa3c43fa3f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613698,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"67158d25-23dc-4314-8813-caa3c43fa3f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613698} {\"correlation_id\":\"67158d25-23dc-4314-8813-caa3c43fa3f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613698,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"67158d25-23dc-4314-8813-caa3c43fa3f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613698,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"67158d25-23dc-4314-8813-caa3c43fa3f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613697,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"8d2a290e-88e6-494a-91c2-f63f0338f30f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613697} {\"correlation_id\":\"8d2a290e-88e6-494a-91c2-f63f0338f30f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613697,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8d2a290e-88e6-494a-91c2-f63f0338f30f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613697,\"participants\":[{\"id\":1001665,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1001666,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"8d2a290e-88e6-494a-91c2-f63f0338f30f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8d2a290e-88e6-494a-91c2-f63f0338f30f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8d2a290e-88e6-494a-91c2-f63f0338f30f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"8d2a290e-88e6-494a-91c2-f63f0338f30f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"8d2a290e-88e6-494a-91c2-f63f0338f30f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"8d2a290e-88e6-494a-91c2-f63f0338f30f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613697,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"8d2a290e-88e6-494a-91c2-f63f0338f30f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613697,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"8d2a290e-88e6-494a-91c2-f63f0338f30f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613697} {\"correlation_id\":\"8d2a290e-88e6-494a-91c2-f63f0338f30f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613697,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8d2a290e-88e6-494a-91c2-f63f0338f30f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613697,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"8d2a290e-88e6-494a-91c2-f63f0338f30f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613696,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"d1c50e93-0488-4315-a739-f89181b77d87\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613696} {\"correlation_id\":\"d1c50e93-0488-4315-a739-f89181b77d87\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613696,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d1c50e93-0488-4315-a739-f89181b77d87\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613696,\"participants\":[{\"id\":1001663,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1001664,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"d1c50e93-0488-4315-a739-f89181b77d87\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d1c50e93-0488-4315-a739-f89181b77d87\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d1c50e93-0488-4315-a739-f89181b77d87\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"d1c50e93-0488-4315-a739-f89181b77d87\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"d1c50e93-0488-4315-a739-f89181b77d87\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"d1c50e93-0488-4315-a739-f89181b77d87\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613696,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"d1c50e93-0488-4315-a739-f89181b77d87\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613696,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"d1c50e93-0488-4315-a739-f89181b77d87\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613696} {\"correlation_id\":\"d1c50e93-0488-4315-a739-f89181b77d87\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613696,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d1c50e93-0488-4315-a739-f89181b77d87\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613696,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"d1c50e93-0488-4315-a739-f89181b77d87\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613695,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"6dbd1e2c-b89e-47b6-9c2f-d9d7a56b5383\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613695} {\"correlation_id\":\"6dbd1e2c-b89e-47b6-9c2f-d9d7a56b5383\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613695,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"6dbd1e2c-b89e-47b6-9c2f-d9d7a56b5383\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613695,\"participants\":[{\"id\":1001661,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1001662,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"6dbd1e2c-b89e-47b6-9c2f-d9d7a56b5383\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"6dbd1e2c-b89e-47b6-9c2f-d9d7a56b5383\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"6dbd1e2c-b89e-47b6-9c2f-d9d7a56b5383\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"6dbd1e2c-b89e-47b6-9c2f-d9d7a56b5383\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"6dbd1e2c-b89e-47b6-9c2f-d9d7a56b5383\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"6dbd1e2c-b89e-47b6-9c2f-d9d7a56b5383\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613695,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"6dbd1e2c-b89e-47b6-9c2f-d9d7a56b5383\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613695,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"6dbd1e2c-b89e-47b6-9c2f-d9d7a56b5383\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613695} {\"correlation_id\":\"6dbd1e2c-b89e-47b6-9c2f-d9d7a56b5383\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613695,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"6dbd1e2c-b89e-47b6-9c2f-d9d7a56b5383\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613695,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"6dbd1e2c-b89e-47b6-9c2f-d9d7a56b5383\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613694,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"cd14d297-e2e1-425f-b745-361ca50df005\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613694} {\"correlation_id\":\"cd14d297-e2e1-425f-b745-361ca50df005\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613694,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cd14d297-e2e1-425f-b745-361ca50df005\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613694,\"participants\":[{\"id\":1001659,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1001660,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"cd14d297-e2e1-425f-b745-361ca50df005\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cd14d297-e2e1-425f-b745-361ca50df005\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cd14d297-e2e1-425f-b745-361ca50df005\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cd14d297-e2e1-425f-b745-361ca50df005\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"cd14d297-e2e1-425f-b745-361ca50df005\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"cd14d297-e2e1-425f-b745-361ca50df005\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613694,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"cd14d297-e2e1-425f-b745-361ca50df005\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613694,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"cd14d297-e2e1-425f-b745-361ca50df005\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613694} {\"correlation_id\":\"cd14d297-e2e1-425f-b745-361ca50df005\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613694,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cd14d297-e2e1-425f-b745-361ca50df005\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613694,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"cd14d297-e2e1-425f-b745-361ca50df005\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613157,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34}} {\"correlation_id\":\"ed6d3fa0-08c4-412f-b60d-4582c6dfa704\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613157} {\"correlation_id\":\"ed6d3fa0-08c4-412f-b60d-4582c6dfa704\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613157,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ed6d3fa0-08c4-412f-b60d-4582c6dfa704\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613157,\"participants\":[{\"id\":1000746,\"user_id\":253,\"contact_id\":null,\"lead_id\":null},{\"id\":1000747,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null}]} {\"correlation_id\":\"ed6d3fa0-08c4-412f-b60d-4582c6dfa704\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ed6d3fa0-08c4-412f-b60d-4582c6dfa704\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ed6d3fa0-08c4-412f-b60d-4582c6dfa704\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ed6d3fa0-08c4-412f-b60d-4582c6dfa704\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ed6d3fa0-08c4-412f-b60d-4582c6dfa704\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613157,\"team_id\":2,\"email\":\"preslava.ivanova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"ed6d3fa0-08c4-412f-b60d-4582c6dfa704\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"ed6d3fa0-08c4-412f-b60d-4582c6dfa704\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613157,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"ed6d3fa0-08c4-412f-b60d-4582c6dfa704\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613157} {\"correlation_id\":\"ed6d3fa0-08c4-412f-b60d-4582c6dfa704\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613157,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ed6d3fa0-08c4-412f-b60d-4582c6dfa704\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613157,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34} {\"correlation_id\":\"ed6d3fa0-08c4-412f-b60d-4582c6dfa704\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613156,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34}} {\"correlation_id\":\"77af6469-661f-4d4b-b741-a5b059c8b181\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613156} {\"correlation_id\":\"77af6469-661f-4d4b-b741-a5b059c8b181\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613156,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"77af6469-661f-4d4b-b741-a5b059c8b181\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613156,\"participants\":[{\"id\":1000744,\"user_id\":253,\"contact_id\":null,\"lead_id\":null},{\"id\":1000745,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null}]} {\"correlation_id\":\"77af6469-661f-4d4b-b741-a5b059c8b181\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"77af6469-661f-4d4b-b741-a5b059c8b181\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"77af6469-661f-4d4b-b741-a5b059c8b181\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"77af6469-661f-4d4b-b741-a5b059c8b181\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"77af6469-661f-4d4b-b741-a5b059c8b181\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613156,\"team_id\":2,\"email\":\"preslava.ivanova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"77af6469-661f-4d4b-b741-a5b059c8b181\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"77af6469-661f-4d4b-b741-a5b059c8b181\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613156,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"77af6469-661f-4d4b-b741-a5b059c8b181\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613156} {\"correlation_id\":\"77af6469-661f-4d4b-b741-a5b059c8b181\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613156,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"77af6469-661f-4d4b-b741-a5b059c8b181\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613156,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34} {\"correlation_id\":\"77af6469-661f-4d4b-b741-a5b059c8b181\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613155,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34}} {\"correlation_id\":\"6cd64b7d-2826-41b3-83e4-000c5cd88462\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613155} {\"correlation_id\":\"6cd64b7d-2826-41b3-83e4-000c5cd88462\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613155,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"6cd64b7d-2826-41b3-83e4-000c5cd88462\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613155,\"participants\":[{\"id\":1000742,\"user_id\":253,\"contact_id\":null,\"lead_id\":null},{\"id\":1000743,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null}]} {\"correlation_id\":\"6cd64b7d-2826-41b3-83e4-000c5cd88462\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"6cd64b7d-2826-41b3-83e4-000c5cd88462\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"6cd64b7d-2826-41b3-83e4-000c5cd88462\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"6cd64b7d-2826-41b3-83e4-000c5cd88462\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"6cd64b7d-2826-41b3-83e4-000c5cd88462\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613155,\"team_id\":2,\"email\":\"preslava.ivanova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"6cd64b7d-2826-41b3-83e4-000c5cd88462\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"6cd64b7d-2826-41b3-83e4-000c5cd88462\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613155,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"6cd64b7d-2826-41b3-83e4-000c5cd88462\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613155} {\"correlation_id\":\"6cd64b7d-2826-41b3-83e4-000c5cd88462\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613155,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"6cd64b7d-2826-41b3-83e4-000c5cd88462\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613155,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34} {\"correlation_id\":\"6cd64b7d-2826-41b3-83e4-000c5cd88462\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613130,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"8d0dfbe8-30bd-4332-bf52-762b3a44300b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613130} {\"correlation_id\":\"8d0dfbe8-30bd-4332-bf52-762b3a44300b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613130,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8d0dfbe8-30bd-4332-bf52-762b3a44300b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613130,\"participants\":[{\"id\":1000693,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1000694,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"8d0dfbe8-30bd-4332-bf52-762b3a44300b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8d0dfbe8-30bd-4332-bf52-762b3a44300b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8d0dfbe8-30bd-4332-bf52-762b3a44300b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"8d0dfbe8-30bd-4332-bf52-762b3a44300b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"8d0dfbe8-30bd-4332-bf52-762b3a44300b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"8d0dfbe8-30bd-4332-bf52-762b3a44300b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613130,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"8d0dfbe8-30bd-4332-bf52-762b3a44300b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613130,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"8d0dfbe8-30bd-4332-bf52-762b3a44300b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613130} {\"correlation_id\":\"8d0dfbe8-30bd-4332-bf52-762b3a44300b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613130,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8d0dfbe8-30bd-4332-bf52-762b3a44300b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613130,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"8d0dfbe8-30bd-4332-bf52-762b3a44300b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612924,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":165,\"stage_id\":89}} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612924} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612924,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612924,\"participants\":[{\"id\":1000290,\"user_id\":19,\"contact_id\":null,\"lead_id\":null},{\"id\":1000291,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612924,\"team_id\":2,\"email\":\"james.graham@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":69,\"contact_id\":97,\"owner_id\":19} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":69,\"contact_id\":97,\"opportunity_id\":165} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612924,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612924} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612924,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612924,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":165,\"stage_id\":89} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:23] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612923,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":165,\"stage_id\":89}} {\"correlation_id\":\"773e5722-a5c7-48ec-b0d8-11b3aa2aa37a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:23] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612923} {\"correlation_id\":\"773e5722-a5c7-48ec-b0d8-11b3aa2aa37a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:23] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612923,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"773e5722-a5c7-48ec-b0d8-11b3aa2aa37a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:23] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612923,\"participants\":[{\"id\":1000288,\"user_id\":19,\"contact_id\":null,\"lead_id\":null},{\"id\":1000289,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"773e5722-a5c7-48ec-b0d8-11b3aa2aa37a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:23] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"773e5722-a5c7-48ec-b0d8-11b3aa2aa37a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:23] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"773e5722-a5c7-48ec-b0d8-11b3aa2aa37a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:23] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"773e5722-a5c7-48ec-b0d8-11b3aa2aa37a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:23] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"773e5722-a5c7-48ec-b0d8-11b3aa2aa37a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:23] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612923,\"team_id\":2,\"email\":\"james.graham@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"773e5722-a5c7-48ec-b0d8-11b3aa2aa37a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:23] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"773e5722-a5c7-48ec-b0d8-11b3aa2aa37a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:23] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612923,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"773e5722-a5c7-48ec-b0d8-11b3aa2aa37a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:24] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612923} {\"correlation_id\":\"773e5722-a5c7-48ec-b0d8-11b3aa2aa37a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:24] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612923,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"773e5722-a5c7-48ec-b0d8-11b3aa2aa37a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:24] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612923,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":165,\"stage_id\":89} {\"correlation_id\":\"773e5722-a5c7-48ec-b0d8-11b3aa2aa37a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:24] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612922,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":165,\"stage_id\":89}} {\"correlation_id\":\"7d6f9c8c-16e0-4f84-b07d-adddfa5c739f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:24] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612922} {\"correlation_id\":\"7d6f9c8c-16e0-4f84-b07d-adddfa5c739f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:24] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612922,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7d6f9c8c-16e0-4f84-b07d-adddfa5c739f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:24] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612922,\"participants\":[{\"id\":1000286,\"user_id\":19,\"contact_id\":null,\"lead_id\":null},{\"id\":1000287,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"7d6f9c8c-16e0-4f84-b07d-adddfa5c739f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:24] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7d6f9c8c-16e0-4f84-b07d-adddfa5c739f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:24] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7d6f9c8c-16e0-4f84-b07d-adddfa5c739f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7d6f9c8c-16e0-4f84-b07d-adddfa5c739f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"7d6f9c8c-16e0-4f84-b07d-adddfa5c739f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612922,\"team_id\":2,\"email\":\"james.graham@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"7d6f9c8c-16e0-4f84-b07d-adddfa5c739f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"7d6f9c8c-16e0-4f84-b07d-adddfa5c739f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612922,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"7d6f9c8c-16e0-4f84-b07d-adddfa5c739f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612922} {\"correlation_id\":\"7d6f9c8c-16e0-4f84-b07d-adddfa5c739f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612922,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7d6f9c8c-16e0-4f84-b07d-adddfa5c739f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612922,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":165,\"stage_id\":89} {\"correlation_id\":\"7d6f9c8c-16e0-4f84-b07d-adddfa5c739f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612847,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"462c34b9-0b57-4e81-a9e2-5ce4a6900814\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612847} {\"correlation_id\":\"462c34b9-0b57-4e81-a9e2-5ce4a6900814\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612847,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"462c34b9-0b57-4e81-a9e2-5ce4a6900814\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612847,\"participants\":[{\"id\":1000130,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":1000131,\"user_id\":261,\"contact_id\":null,\"lead_id\":null},{\"id\":1000151,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null}]} {\"correlation_id\":\"462c34b9-0b57-4e81-a9e2-5ce4a6900814\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"462c34b9-0b57-4e81-a9e2-5ce4a6900814\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"462c34b9-0b57-4e81-a9e2-5ce4a6900814\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"462c34b9-0b57-4e81-a9e2-5ce4a6900814\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"462c34b9-0b57-4e81-a9e2-5ce4a6900814\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"correlation_id\":\"462c34b9-0b57-4e81-a9e2-5ce4a6900814\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"503de928-3a1a-4314-a23f-ca2625111f7f\",\"trace_id\":\"7ee54e65-014c-4ae3-821a-dc0488dc10ed\"}\n[2026-05-11 11:09:26] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"503de928-3a1a-4314-a23f-ca2625111f7f\",\"trace_id\":\"7ee54e65-014c-4ae3-821a-dc0488dc10ed\"}\n[2026-05-11 11:09:26] local.INFO: [Hubspot] Failed to fetch contact {\"email\":\"adelina.petrova@jiminny.com\",\"reason\":\"[404] Client error: `GET https://api.hubapi.com/crm/v3/objects/contacts/adelina.petrova%40jiminny.com?properties=email%2Cfirstname%2Clastname%2Ccountry%2Cphone%2Cmobilephone%2Cjobtitle%2Chubspot_owner_id%2Cassociatedcompanyid%2Cphoto&archived=0&idProperty=email` resulted in a `404 Not Found` response\"} {\"correlation_id\":\"462c34b9-0b57-4e81-a9e2-5ce4a6900814\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:26] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"correlation_id\":\"462c34b9-0b57-4e81-a9e2-5ce4a6900814\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:26] local.WARNING: [Hubspot] No retry-after header or known message, using default {\"exception_class\":\"SevenShores\\\\Hubspot\\\\Exceptions\\\\BadRequest\",\"message\":\"\"} {\"correlation_id\":\"462c34b9-0b57-4e81-a9e2-5ce4a6900814\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:26] local.WARNING: [Hubspot] Received 429 from API {\"team_id\":2,\"config_id\":2,\"retry_after\":10,\"message\":\"\",\"reason\":\"Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response:\n{\\\"status\\\":\\\"error\\\",\\\"message\\\":\\\"You have reached your secondly limit.\\\",\\\"errorType\\\":\\\"RATE_LIMIT\\\",\\\"correlationId\\\":\\\"019e16ba-4 (truncated...)\n\"} {\"correlation_id\":\"462c34b9-0b57-4e81-a9e2-5ce4a6900814\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:26] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":10,\"delay\":14} {\"correlation_id\":\"462c34b9-0b57-4e81-a9e2-5ce4a6900814\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:26] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612822,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"ca259dfb-7b24-4406-9b61-a4f28761020b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:26] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612822} {\"correlation_id\":\"ca259dfb-7b24-4406-9b61-a4f28761020b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:26] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612822,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ca259dfb-7b24-4406-9b61-a4f28761020b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:26] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612822,\"participants\":[{\"id\":1000080,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1000081,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"ca259dfb-7b24-4406-9b61-a4f28761020b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ca259dfb-7b24-4406-9b61-a4f28761020b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ca259dfb-7b24-4406-9b61-a4f28761020b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ca259dfb-7b24-4406-9b61-a4f28761020b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ca259dfb-7b24-4406-9b61-a4f28761020b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"ca259dfb-7b24-4406-9b61-a4f28761020b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612822,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"ca259dfb-7b24-4406-9b61-a4f28761020b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612822,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"ca259dfb-7b24-4406-9b61-a4f28761020b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612822} {\"correlation_id\":\"ca259dfb-7b24-4406-9b61-a4f28761020b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612822,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ca259dfb-7b24-4406-9b61-a4f28761020b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612822,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"ca259dfb-7b24-4406-9b61-a4f28761020b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612819,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"cd602b18-88a5-4ea9-afef-e52be017fc0f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612819} {\"correlation_id\":\"cd602b18-88a5-4ea9-afef-e52be017fc0f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612819,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cd602b18-88a5-4ea9-afef-e52be017fc0f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612819,\"participants\":[{\"id\":1000073,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1000074,\"user_id\":261,\"contact_id\":null,\"lead_id\":null},{\"id\":1000075,\"user_id\":null,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"cd602b18-88a5-4ea9-afef-e52be017fc0f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cd602b18-88a5-4ea9-afef-e52be017fc0f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cd602b18-88a5-4ea9-afef-e52be017fc0f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cd602b18-88a5-4ea9-afef-e52be017fc0f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"cd602b18-88a5-4ea9-afef-e52be017fc0f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"cd602b18-88a5-4ea9-afef-e52be017fc0f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612819,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"cd602b18-88a5-4ea9-afef-e52be017fc0f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"correlation_id\":\"cd602b18-88a5-4ea9-afef-e52be017fc0f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"correlation_id\":\"cd602b18-88a5-4ea9-afef-e52be017fc0f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":10,\"delay\":10} {\"correlation_id\":\"cd602b18-88a5-4ea9-afef-e52be017fc0f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612673,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"d86174e3-e3b0-41d6-b9f5-97de4ca4da9f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612673} {\"correlation_id\":\"d86174e3-e3b0-41d6-b9f5-97de4ca4da9f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612673,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d86174e3-e3b0-41d6-b9f5-97de4ca4da9f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612673,\"participants\":[{\"id\":999993,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":999994,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"d86174e3-e3b0-41d6-b9f5-97de4ca4da9f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d86174e3-e3b0-41d6-b9f5-97de4ca4da9f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d86174e3-e3b0-41d6-b9f5-97de4ca4da9f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"d86174e3-e3b0-41d6-b9f5-97de4ca4da9f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"d86174e3-e3b0-41d6-b9f5-97de4ca4da9f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"d86174e3-e3b0-41d6-b9f5-97de4ca4da9f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612673,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"d86174e3-e3b0-41d6-b9f5-97de4ca4da9f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612673,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"d86174e3-e3b0-41d6-b9f5-97de4ca4da9f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612673} {\"correlation_id\":\"d86174e3-e3b0-41d6-b9f5-97de4ca4da9f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612673,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d86174e3-e3b0-41d6-b9f5-97de4ca4da9f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612673,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"d86174e3-e3b0-41d6-b9f5-97de4ca4da9f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612642,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"2f9f8923-a6e3-4e5b-a1ae-cdea42bb3cda\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612642} {\"correlation_id\":\"2f9f8923-a6e3-4e5b-a1ae-cdea42bb3cda\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612642,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2f9f8923-a6e3-4e5b-a1ae-cdea42bb3cda\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612642,\"participants\":[{\"id\":999935,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":999936,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"2f9f8923-a6e3-4e5b-a1ae-cdea42bb3cda\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2f9f8923-a6e3-4e5b-a1ae-cdea42bb3cda\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2f9f8923-a6e3-4e5b-a1ae-cdea42bb3cda\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"2f9f8923-a6e3-4e5b-a1ae-cdea42bb3cda\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"2f9f8923-a6e3-4e5b-a1ae-cdea42bb3cda\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"2f9f8923-a6e3-4e5b-a1ae-cdea42bb3cda\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612642,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"2f9f8923-a6e3-4e5b-a1ae-cdea42bb3cda\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612642,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"2f9f8923-a6e3-4e5b-a1ae-cdea42bb3cda\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612642} {\"correlation_id\":\"2f9f8923-a6e3-4e5b-a1ae-cdea42bb3cda\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612642,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2f9f8923-a6e3-4e5b-a1ae-cdea42bb3cda\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612642,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"2f9f8923-a6e3-4e5b-a1ae-cdea42bb3cda\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612598,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612598} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612598,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612598,\"participants\":[{\"id\":999857,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999858,\"user_id\":206,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":243,\"contact_id\":4491,\"owner_id\":206} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":243,\"contact_id\":4491} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":243,\"contact_id\":4491,\"opportunity_id\":276} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612598,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612598,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612598} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612598,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612598,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":5.94,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"6d49ffdc-2ed7-4eae-a1ee-e25ca95bbea8\",\"trace_id\":\"906573b5-005c-4820-8a32-3b0703ea86dd\"}\n[2026-05-11 11:09:28] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612597,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"c69a3a24-bab5-4d56-887b-01111944b3a2\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612597} {\"correlation_id\":\"c69a3a24-bab5-4d56-887b-01111944b3a2\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612597,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"c69a3a24-bab5-4d56-887b-01111944b3a2\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612597,\"participants\":[{\"id\":999855,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999856,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null}]} {\"correlation_id\":\"c69a3a24-bab5-4d56-887b-01111944b3a2\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"c69a3a24-bab5-4d56-887b-01111944b3a2\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"c69a3a24-bab5-4d56-887b-01111944b3a2\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"c69a3a24-bab5-4d56-887b-01111944b3a2\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"c69a3a24-bab5-4d56-887b-01111944b3a2\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612597,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"c69a3a24-bab5-4d56-887b-01111944b3a2\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"c69a3a24-bab5-4d56-887b-01111944b3a2\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612597,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"c69a3a24-bab5-4d56-887b-01111944b3a2\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612597} {\"correlation_id\":\"c69a3a24-bab5-4d56-887b-01111944b3a2\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612597,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"c69a3a24-bab5-4d56-887b-01111944b3a2\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612597,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"c69a3a24-bab5-4d56-887b-01111944b3a2\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612596,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"0da9fc28-653b-406f-bafe-5d78010cb3da\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612596} {\"correlation_id\":\"0da9fc28-653b-406f-bafe-5d78010cb3da\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612596,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0da9fc28-653b-406f-bafe-5d78010cb3da\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612596,\"participants\":[{\"id\":999853,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999854,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null}]} {\"correlation_id\":\"0da9fc28-653b-406f-bafe-5d78010cb3da\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0da9fc28-653b-406f-bafe-5d78010cb3da\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0da9fc28-653b-406f-bafe-5d78010cb3da\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0da9fc28-653b-406f-bafe-5d78010cb3da\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0da9fc28-653b-406f-bafe-5d78010cb3da\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612596,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"0da9fc28-653b-406f-bafe-5d78010cb3da\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"0da9fc28-653b-406f-bafe-5d78010cb3da\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612596,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"0da9fc28-653b-406f-bafe-5d78010cb3da\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612596} {\"correlation_id\":\"0da9fc28-653b-406f-bafe-5d78010cb3da\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612596,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0da9fc28-653b-406f-bafe-5d78010cb3da\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612596,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"0da9fc28-653b-406f-bafe-5d78010cb3da\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612595,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"f7dd9c18-1f48-4adc-b2a2-a5e768444dfd\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612595} {\"correlation_id\":\"f7dd9c18-1f48-4adc-b2a2-a5e768444dfd\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612595,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"f7dd9c18-1f48-4adc-b2a2-a5e768444dfd\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612595,\"participants\":[{\"id\":999851,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999852,\"user_id\":206,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"f7dd9c18-1f48-4adc-b2a2-a5e768444dfd\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f7dd9c18-1f48-4adc-b2a2-a5e768444dfd\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f7dd9c18-1f48-4adc-b2a2-a5e768444dfd\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"f7dd9c18-1f48-4adc-b2a2-a5e768444dfd\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"f7dd9c18-1f48-4adc-b2a2-a5e768444dfd\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"f7dd9c18-1f48-4adc-b2a2-a5e768444dfd\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612595,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"f7dd9c18-1f48-4adc-b2a2-a5e768444dfd\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612595,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"f7dd9c18-1f48-4adc-b2a2-a5e768444dfd\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612595} {\"correlation_id\":\"f7dd9c18-1f48-4adc-b2a2-a5e768444dfd\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612595,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"f7dd9c18-1f48-4adc-b2a2-a5e768444dfd\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612595,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"f7dd9c18-1f48-4adc-b2a2-a5e768444dfd\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612594,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"4dacaa76-fc8b-462e-95ae-b74602d62a8f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612594} {\"correlation_id\":\"4dacaa76-fc8b-462e-95ae-b74602d62a8f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612594,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4dacaa76-fc8b-462e-95ae-b74602d62a8f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612594,\"participants\":[{\"id\":999849,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999850,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null}]} {\"correlation_id\":\"4dacaa76-fc8b-462e-95ae-b74602d62a8f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4dacaa76-fc8b-462e-95ae-b74602d62a8f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4dacaa76-fc8b-462e-95ae-b74602d62a8f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"4dacaa76-fc8b-462e-95ae-b74602d62a8f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"4dacaa76-fc8b-462e-95ae-b74602d62a8f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612594,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"4dacaa76-fc8b-462e-95ae-b74602d62a8f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"4dacaa76-fc8b-462e-95ae-b74602d62a8f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612594,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"4dacaa76-fc8b-462e-95ae-b74602d62a8f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612594} {\"correlation_id\":\"4dacaa76-fc8b-462e-95ae-b74602d62a8f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612594,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4dacaa76-fc8b-462e-95ae-b74602d62a8f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612594,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"4dacaa76-fc8b-462e-95ae-b74602d62a8f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612593,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"0845a766-3bc8-4303-83dc-9f0e57d46a44\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612593} {\"correlation_id\":\"0845a766-3bc8-4303-83dc-9f0e57d46a44\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612593,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0845a766-3bc8-4303-83dc-9f0e57d46a44\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612593,\"participants\":[{\"id\":999847,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999848,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null}]} {\"correlation_id\":\"0845a766-3bc8-4303-83dc-9f0e57d46a44\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0845a766-3bc8-4303-83dc-9f0e57d46a44\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0845a766-3bc8-4303-83dc-9f0e57d46a44\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0845a766-3bc8-4303-83dc-9f0e57d46a44\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0845a766-3bc8-4303-83dc-9f0e57d46a44\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612593,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"0845a766-3bc8-4303-83dc-9f0e57d46a44\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"0845a766-3bc8-4303-83dc-9f0e57d46a44\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612593,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"0845a766-3bc8-4303-83dc-9f0e57d46a44\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612593} {\"correlation_id\":\"0845a766-3bc8-4303-83dc-9f0e57d46a44\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612593,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0845a766-3bc8-4303-83dc-9f0e57d46a44\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612593,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"0845a766-3bc8-4303-83dc-9f0e57d46a44\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612592,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"315733d6-e316-4fb7-9ab6-c38b0bc2a394\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612592} {\"correlation_id\":\"315733d6-e316-4fb7-9ab6-c38b0bc2a394\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612592,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"315733d6-e316-4fb7-9ab6-c38b0bc2a394\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612592,\"participants\":[{\"id\":999845,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999846,\"user_id\":206,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"315733d6-e316-4fb7-9ab6-c38b0bc2a394\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"315733d6-e316-4fb7-9ab6-c38b0bc2a394\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"315733d6-e316-4fb7-9ab6-c38b0bc2a394\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"315733d6-e316-4fb7-9ab6-c38b0bc2a394\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"315733d6-e316-4fb7-9ab6-c38b0bc2a394\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"315733d6-e316-4fb7-9ab6-c38b0bc2a394\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612592,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"315733d6-e316-4fb7-9ab6-c38b0bc2a394\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612592,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"315733d6-e316-4fb7-9ab6-c38b0bc2a394\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612592} {\"correlation_id\":\"315733d6-e316-4fb7-9ab6-c38b0bc2a394\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612592,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"315733d6-e316-4fb7-9ab6-c38b0bc2a394\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612592,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"315733d6-e316-4fb7-9ab6-c38b0bc2a394\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612591,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"a4f3cee6-628d-4ea1-afef-271709541a6f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612591} {\"correlation_id\":\"a4f3cee6-628d-4ea1-afef-271709541a6f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612591,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a4f3cee6-628d-4ea1-afef-271709541a6f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612591,\"participants\":[{\"id\":999843,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999844,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null}]} {\"correlation_id\":\"a4f3cee6-628d-4ea1-afef-271709541a6f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a4f3cee6-628d-4ea1-afef-271709541a6f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a4f3cee6-628d-4ea1-afef-271709541a6f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"a4f3cee6-628d-4ea1-afef-271709541a6f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"a4f3cee6-628d-4ea1-afef-271709541a6f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612591,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"a4f3cee6-628d-4ea1-afef-271709541a6f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"a4f3cee6-628d-4ea1-afef-271709541a6f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612591,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"a4f3cee6-628d-4ea1-afef-271709541a6f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612591} {\"correlation_id\":\"a4f3cee6-628d-4ea1-afef-271709541a6f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612591,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a4f3cee6-628d-4ea1-afef-271709541a6f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612591,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"a4f3cee6-628d-4ea1-afef-271709541a6f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612590,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"dfa94946-5871-4106-8e8f-5e7a418e64ae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612590} {\"correlation_id\":\"dfa94946-5871-4106-8e8f-5e7a418e64ae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612590,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"dfa94946-5871-4106-8e8f-5e7a418e64ae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612590,\"participants\":[{\"id\":999841,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999842,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null}]} {\"correlation_id\":\"dfa94946-5871-4106-8e8f-5e7a418e64ae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"dfa94946-5871-4106-8e8f-5e7a418e64ae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"dfa94946-5871-4106-8e8f-5e7a418e64ae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"dfa94946-5871-4106-8e8f-5e7a418e64ae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"dfa94946-5871-4106-8e8f-5e7a418e64ae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612590,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"dfa94946-5871-4106-8e8f-5e7a418e64ae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"dfa94946-5871-4106-8e8f-5e7a418e64ae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612590,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"dfa94946-5871-4106-8e8f-5e7a418e64ae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612590} {\"correlation_id\":\"dfa94946-5871-4106-8e8f-5e7a418e64ae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612590,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"dfa94946-5871-4106-8e8f-5e7a418e64ae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612590,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"dfa94946-5871-4106-8e8f-5e7a418e64ae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612589,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"92666ef7-2d6e-4056-9d87-23df1bc694b1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612589} {\"correlation_id\":\"92666ef7-2d6e-4056-9d87-23df1bc694b1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612589,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"92666ef7-2d6e-4056-9d87-23df1bc694b1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612589,\"participants\":[{\"id\":999839,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999840,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null}]} {\"correlation_id\":\"92666ef7-2d6e-4056-9d87-23df1bc694b1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"92666ef7-2d6e-4056-9d87-23df1bc694b1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"92666ef7-2d6e-4056-9d87-23df1bc694b1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"92666ef7-2d6e-4056-9d87-23df1bc694b1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"92666ef7-2d6e-4056-9d87-23df1bc694b1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612589,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"92666ef7-2d6e-4056-9d87-23df1bc694b1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"92666ef7-2d6e-4056-9d87-23df1bc694b1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612589,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"92666ef7-2d6e-4056-9d87-23df1bc694b1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612589} {\"correlation_id\":\"92666ef7-2d6e-4056-9d87-23df1bc694b1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612589,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"92666ef7-2d6e-4056-9d87-23df1bc694b1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612589,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"92666ef7-2d6e-4056-9d87-23df1bc694b1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612588,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"7441c20c-f1d3-4310-a3a7-2c1aad9bbe25\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612588} {\"correlation_id\":\"7441c20c-f1d3-4310-a3a7-2c1aad9bbe25\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612588,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7441c20c-f1d3-4310-a3a7-2c1aad9bbe25\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612588,\"participants\":[{\"id\":999837,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999838,\"user_id\":206,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"7441c20c-f1d3-4310-a3a7-2c1aad9bbe25\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7441c20c-f1d3-4310-a3a7-2c1aad9bbe25\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7441c20c-f1d3-4310-a3a7-2c1aad9bbe25\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7441c20c-f1d3-4310-a3a7-2c1aad9bbe25\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"7441c20c-f1d3-4310-a3a7-2c1aad9bbe25\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"7441c20c-f1d3-4310-a3a7-2c1aad9bbe25\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612588,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"7441c20c-f1d3-4310-a3a7-2c1aad9bbe25\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612588,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"7441c20c-f1d3-4310-a3a7-2c1aad9bbe25\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612588} {\"correlation_id\":\"7441c20c-f1d3-4310-a3a7-2c1aad9bbe25\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612588,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7441c20c-f1d3-4310-a3a7-2c1aad9bbe25\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612588,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"7441c20c-f1d3-4310-a3a7-2c1aad9bbe25\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612587,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"b6283377-e461-4841-90a6-bd9b51c31e78\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612587} {\"correlation_id\":\"b6283377-e461-4841-90a6-bd9b51c31e78\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612587,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b6283377-e461-4841-90a6-bd9b51c31e78\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612587,\"participants\":[{\"id\":999835,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999836,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null}]} {\"correlation_id\":\"b6283377-e461-4841-90a6-bd9b51c31e78\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b6283377-e461-4841-90a6-bd9b51c31e78\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b6283377-e461-4841-90a6-bd9b51c31e78\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b6283377-e461-4841-90a6-bd9b51c31e78\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"b6283377-e461-4841-90a6-bd9b51c31e78\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612587,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"b6283377-e461-4841-90a6-bd9b51c31e78\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"b6283377-e461-4841-90a6-bd9b51c31e78\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612587,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"b6283377-e461-4841-90a6-bd9b51c31e78\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612587} {\"correlation_id\":\"b6283377-e461-4841-90a6-bd9b51c31e78\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612587,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b6283377-e461-4841-90a6-bd9b51c31e78\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612587,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"b6283377-e461-4841-90a6-bd9b51c31e78\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612586,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"d0ddb01c-2b21-4989-998a-fa52e7affced\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612586} {\"correlation_id\":\"d0ddb01c-2b21-4989-998a-fa52e7affced\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612586,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d0ddb01c-2b21-4989-998a-fa52e7affced\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612586,\"participants\":[{\"id\":999833,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999834,\"user_id\":206,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"d0ddb01c-2b21-4989-998a-fa52e7affced\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d0ddb01c-2b21-4989-998a-fa52e7affced\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d0ddb01c-2b21-4989-998a-fa52e7affced\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"d0ddb01c-2b21-4989-998a-fa52e7affced\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"d0ddb01c-2b21-4989-998a-fa52e7affced\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"d0ddb01c-2b21-4989-998a-fa52e7affced\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612586,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"d0ddb01c-2b21-4989-998a-fa52e7affced\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612586,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"d0ddb01c-2b21-4989-998a-fa52e7affced\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612586} {\"correlation_id\":\"d0ddb01c-2b21-4989-998a-fa52e7affced\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612586,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d0ddb01c-2b21-4989-998a-fa52e7affced\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612586,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"d0ddb01c-2b21-4989-998a-fa52e7affced\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.NOTICE: Monitoring start {\"correlation_id\":\"772cf24f-66f8-49c0-8ef5-e6c1d128fccb\",\"trace_id\":\"2d950f5a-3a35-4a8b-b33b-4d129409925b\"}\n[2026-05-11 11:09:31] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612585,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"cef11ffe-61af-425d-b899-399323237a47\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612585} {\"correlation_id\":\"cef11ffe-61af-425d-b899-399323237a47\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612585,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cef11ffe-61af-425d-b899-399323237a47\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.NOTICE: Monitoring end {\"correlation_id\":\"772cf24f-66f8-49c0-8ef5-e6c1d128fccb\",\"trace_id\":\"2d950f5a-3a35-4a8b-b33b-4d129409925b\"}\n[2026-05-11 11:09:31] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612585,\"participants\":[{\"id\":999831,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999832,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null}]} {\"correlation_id\":\"cef11ffe-61af-425d-b899-399323237a47\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cef11ffe-61af-425d-b899-399323237a47\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cef11ffe-61af-425d-b899-399323237a47\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cef11ffe-61af-425d-b899-399323237a47\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"cef11ffe-61af-425d-b899-399323237a47\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612585,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"cef11ffe-61af-425d-b899-399323237a47\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"cef11ffe-61af-425d-b899-399323237a47\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612585,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"cef11ffe-61af-425d-b899-399323237a47\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612585} {\"correlation_id\":\"cef11ffe-61af-425d-b899-399323237a47\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612585,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cef11ffe-61af-425d-b899-399323237a47\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612585,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"cef11ffe-61af-425d-b899-399323237a47\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612584,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"2aa83935-5a46-4a3d-98d7-acfcf3f3f6cb\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612584} {\"correlation_id\":\"2aa83935-5a46-4a3d-98d7-acfcf3f3f6cb\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612584,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2aa83935-5a46-4a3d-98d7-acfcf3f3f6cb\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612584,\"participants\":[{\"id\":999829,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999830,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null}]} {\"correlation_id\":\"2aa83935-5a46-4a3d-98d7-acfcf3f3f6cb\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2aa83935-5a46-4a3d-98d7-acfcf3f3f6cb\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2aa83935-5a46-4a3d-98d7-acfcf3f3f6cb\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"2aa83935-5a46-4a3d-98d7-acfcf3f3f6cb\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"2aa83935-5a46-4a3d-98d7-acfcf3f3f6cb\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612584,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"2aa83935-5a46-4a3d-98d7-acfcf3f3f6cb\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"2aa83935-5a46-4a3d-98d7-acfcf3f3f6cb\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612584,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"2aa83935-5a46-4a3d-98d7-acfcf3f3f6cb\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612584} {\"correlation_id\":\"2aa83935-5a46-4a3d-98d7-acfcf3f3f6cb\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612584,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2aa83935-5a46-4a3d-98d7-acfcf3f3f6cb\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612584,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"2aa83935-5a46-4a3d-98d7-acfcf3f3f6cb\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612583,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"04dd4d55-bdb2-4f42-9fbd-8a132707b475\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612583} {\"correlation_id\":\"04dd4d55-bdb2-4f42-9fbd-8a132707b475\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612583,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"04dd4d55-bdb2-4f42-9fbd-8a132707b475\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612583,\"participants\":[{\"id\":999827,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999828,\"user_id\":206,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"04dd4d55-bdb2-4f42-9fbd-8a132707b475\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"04dd4d55-bdb2-4f42-9fbd-8a132707b475\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"04dd4d55-bdb2-4f42-9fbd-8a132707b475\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"04dd4d55-bdb2-4f42-9fbd-8a132707b475\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"04dd4d55-bdb2-4f42-9fbd-8a132707b475\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"04dd4d55-bdb2-4f42-9fbd-8a132707b475\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612583,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"04dd4d55-bdb2-4f42-9fbd-8a132707b475\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612583,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"04dd4d55-bdb2-4f42-9fbd-8a132707b475\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612583} {\"correlation_id\":\"04dd4d55-bdb2-4f42-9fbd-8a132707b475\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612583,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"04dd4d55-bdb2-4f42-9fbd-8a132707b475\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612583,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"04dd4d55-bdb2-4f42-9fbd-8a132707b475\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612582,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"58e7116b-76f4-4698-a629-ff1eb613d93e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612582} {\"correlation_id\":\"58e7116b-76f4-4698-a629-ff1eb613d93e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612582,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"58e7116b-76f4-4698-a629-ff1eb613d93e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612582,\"participants\":[{\"id\":999825,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999826,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null}]} {\"correlation_id\":\"58e7116b-76f4-4698-a629-ff1eb613d93e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"58e7116b-76f4-4698-a629-ff1eb613d93e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"58e7116b-76f4-4698-a629-ff1eb613d93e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"58e7116b-76f4-4698-a629-ff1eb613d93e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"58e7116b-76f4-4698-a629-ff1eb613d93e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612582,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"58e7116b-76f4-4698-a629-ff1eb613d93e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"58e7116b-76f4-4698-a629-ff1eb613d93e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612582,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"58e7116b-76f4-4698-a629-ff1eb613d93e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612582} {\"correlation_id\":\"58e7116b-76f4-4698-a629-ff1eb613d93e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612582,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"58e7116b-76f4-4698-a629-ff1eb613d93e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612582,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"58e7116b-76f4-4698-a629-ff1eb613d93e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612581,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"b1cdf1eb-a77f-4062-bc7a-52e75ec005f1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612581} {\"correlation_id\":\"b1cdf1eb-a77f-4062-bc7a-52e75ec005f1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612581,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b1cdf1eb-a77f-4062-bc7a-52e75ec005f1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612581,\"participants\":[{\"id\":999823,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999824,\"user_id\":206,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"b1cdf1eb-a77f-4062-bc7a-52e75ec005f1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b1cdf1eb-a77f-4062-bc7a-52e75ec005f1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b1cdf1eb-a77f-4062-bc7a-52e75ec005f1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b1cdf1eb-a77f-4062-bc7a-52e75ec005f1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"b1cdf1eb-a77f-4062-bc7a-52e75ec005f1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"b1cdf1eb-a77f-4062-bc7a-52e75ec005f1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612581,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"b1cdf1eb-a77f-4062-bc7a-52e75ec005f1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612581,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"b1cdf1eb-a77f-4062-bc7a-52e75ec005f1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612581} {\"correlation_id\":\"b1cdf1eb-a77f-4062-bc7a-52e75ec005f1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612581,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b1cdf1eb-a77f-4062-bc7a-52e75ec005f1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612581,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"b1cdf1eb-a77f-4062-bc7a-52e75ec005f1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612565,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"4531fd00-7875-4334-b3c2-407d31ec1255\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612565} {\"correlation_id\":\"4531fd00-7875-4334-b3c2-407d31ec1255\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612565,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4531fd00-7875-4334-b3c2-407d31ec1255\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612565,\"participants\":[{\"id\":999789,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999790,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null}]} {\"correlation_id\":\"4531fd00-7875-4334-b3c2-407d31ec1255\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4531fd00-7875-4334-b3c2-407d31ec1255\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4531fd00-7875-4334-b3c2-407d31ec1255\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"4531fd00-7875-4334-b3c2-407d31ec1255\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"4531fd00-7875-4334-b3c2-407d31ec1255\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612565,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"4531fd00-7875-4334-b3c2-407d31ec1255\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"4531fd00-7875-4334-b3c2-407d31ec1255\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612565,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"4531fd00-7875-4334-b3c2-407d31ec1255\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612565} {\"correlation_id\":\"4531fd00-7875-4334-b3c2-407d31ec1255\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612565,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4531fd00-7875-4334-b3c2-407d31ec1255\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612565,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"4531fd00-7875-4334-b3c2-407d31ec1255\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612563,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34}} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612563} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612563,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612563,\"participants\":[{\"id\":999784,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999785,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null}]} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612563,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":206} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":244,\"contact_id\":4487} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":350} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612563,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612563} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612563,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612563,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612562,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"correlation_id\":\"096bc408-0a3f-43ef-9cf6-f9007ee7315c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612562} {\"correlation_id\":\"096bc408-0a3f-43ef-9cf6-f9007ee7315c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612562,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"096bc408-0a3f-43ef-9cf6-f9007ee7315c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612562,\"participants\":[{\"id\":999782,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":999783,\"user_id\":206,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"096bc408-0a3f-43ef-9cf6-f9007ee7315c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"096bc408-0a3f-43ef-9cf6-f9007ee7315c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"096bc408-0a3f-43ef-9cf6-f9007ee7315c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"096bc408-0a3f-43ef-9cf6-f9007ee7315c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"096bc408-0a3f-43ef-9cf6-f9007ee7315c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"447782589921@txt.staging.jiminny.com\"} {\"correlation_id\":\"096bc408-0a3f-43ef-9cf6-f9007ee7315c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:34] local.INFO: [Hubspot] Failed to fetch contact {\"email\":\"447782589921@txt.staging.jiminny.com\",\"reason\":\"[404] Client error: `GET https://api.hubapi.com/crm/v3/objects/contacts/447782589921%40txt.staging.jiminny.com?properties=email%2Cfirstname%2Clastname%2Ccountry%2Cphone%2Cmobilephone%2Cjobtitle%2Chubspot_owner_id%2Cassociatedcompanyid%2Cphoto&archived=0&idProperty=email` resulted in a `404 Not Found` response\"} {\"correlation_id\":\"096bc408-0a3f-43ef-9cf6-f9007ee7315c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:34] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {\"identifier_type\":\"email\",\"identifier\":\"447782589921@txt.staging.jiminny.com\"} {\"correlation_id\":\"096bc408-0a3f-43ef-9cf6-f9007ee7315c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:34] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":10,\"delay\":14} {\"correlation_id\":\"096bc408-0a3f-43ef-9cf6-f9007ee7315c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:34] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612561,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"correlation_id\":\"cded6bdb-0e7c-4baa-b280-5798e81b236a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:34] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612561} {\"correlation_id\":\"cded6bdb-0e7c-4baa-b280-5798e81b236a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:34] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612561,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cded6bdb-0e7c-4baa-b280-5798e81b236a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:34] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612561,\"participants\":[{\"id\":999780,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999781,\"user_id\":null,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"cded6bdb-0e7c-4baa-b280-5798e81b236a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:34] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cded6bdb-0e7c-4baa-b280-5798e81b236a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:34] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cded6bdb-0e7c-4baa-b280-5798e81b236a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:34] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cded6bdb-0e7c-4baa-b280-5798e81b236a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:34] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"cded6bdb-0e7c-4baa-b280-5798e81b236a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:34] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612561,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"cded6bdb-0e7c-4baa-b280-5798e81b236a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:34] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"447700174614.447782589921.OeREojLVnk@txt.staging.jiminny.com\"} {\"correlation_id\":\"cded6bdb-0e7c-4baa-b280-5798e81b236a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [Hubspot] Failed to fetch contact {\"email\":\"447700174614.447782589921.OeREojLVnk@txt.staging.jiminny.com\",\"reason\":\"[404] Client error: `GET https://api.hubapi.com/crm/v3/objects/contacts/447700174614.447782589921.OeREojLVnk%40txt.staging.jiminny.com?properties=email%2Cfirstname%2Clastname%2Ccountry%2Cphone%2Cmobilephone%2Cjobtitle%2Chubspot_owner_id%2Cassociatedcompanyid%2Cphoto&archived=0&idProperty=email` resulted in a `404 Not Found` response\"} {\"correlation_id\":\"cded6bdb-0e7c-4baa-b280-5798e81b236a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {\"identifier_type\":\"email\",\"identifier\":\"447700174614.447782589921.OeREojLVnk@txt.staging.jiminny.com\"} {\"correlation_id\":\"cded6bdb-0e7c-4baa-b280-5798e81b236a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":10,\"delay\":10} {\"correlation_id\":\"cded6bdb-0e7c-4baa-b280-5798e81b236a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612560,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"correlation_id\":\"53ef5599-df42-4f3d-90a1-8f89c19435e4\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612560} {\"correlation_id\":\"53ef5599-df42-4f3d-90a1-8f89c19435e4\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612560,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"53ef5599-df42-4f3d-90a1-8f89c19435e4\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612560,\"participants\":[{\"id\":999778,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":999779,\"user_id\":206,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"53ef5599-df42-4f3d-90a1-8f89c19435e4\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"53ef5599-df42-4f3d-90a1-8f89c19435e4\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"53ef5599-df42-4f3d-90a1-8f89c19435e4\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"53ef5599-df42-4f3d-90a1-8f89c19435e4\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"53ef5599-df42-4f3d-90a1-8f89c19435e4\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"447782589921@txt.staging.jiminny.com\"} {\"correlation_id\":\"53ef5599-df42-4f3d-90a1-8f89c19435e4\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"447782589921@txt.staging.jiminny.com\"} {\"correlation_id\":\"53ef5599-df42-4f3d-90a1-8f89c19435e4\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":10,\"delay\":12} {\"correlation_id\":\"53ef5599-df42-4f3d-90a1-8f89c19435e4\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612559,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34}} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612559} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612559,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612559,\"participants\":[{\"id\":999776,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999777,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612559,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":69,\"contact_id\":97,\"owner_id\":206} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":69,\"contact_id\":97} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":69,\"contact_id\":97,\"opportunity_id\":5011} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":2.07,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"6d49ffdc-2ed7-4eae-a1ee-e25ca95bbea8\",\"trace_id\":\"906573b5-005c-4820-8a32-3b0703ea86dd\"}\n[2026-05-11 11:09:35] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612559,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612559} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612559,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612559,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612558,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34}} {\"correlation_id\":\"34a7b1c6-be3b-4790-a04c-0311e25dadc8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612558} {\"correlation_id\":\"34a7b1c6-be3b-4790-a04c-0311e25dadc8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612558,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"34a7b1c6-be3b-4790-a04c-0311e25dadc8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612558,\"participants\":[{\"id\":999774,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999775,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"34a7b1c6-be3b-4790-a04c-0311e25dadc8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"34a7b1c6-be3b-4790-a04c-0311e25dadc8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"34a7b1c6-be3b-4790-a04c-0311e25dadc8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"34a7b1c6-be3b-4790-a04c-0311e25dadc8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"34a7b1c6-be3b-4790-a04c-0311e25dadc8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612558,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"34a7b1c6-be3b-4790-a04c-0311e25dadc8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"34a7b1c6-be3b-4790-a04c-0311e25dadc8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612558,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"34a7b1c6-be3b-4790-a04c-0311e25dadc8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612558} {\"correlation_id\":\"34a7b1c6-be3b-4790-a04c-0311e25dadc8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612558,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"34a7b1c6-be3b-4790-a04c-0311e25dadc8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612558,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34} {\"correlation_id\":\"34a7b1c6-be3b-4790-a04c-0311e25dadc8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612557,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34}} {\"correlation_id\":\"26d4d3d0-ebf8-44ad-a48f-24728e5539e0\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612557} {\"correlation_id\":\"26d4d3d0-ebf8-44ad-a48f-24728e5539e0\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612557,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"26d4d3d0-ebf8-44ad-a48f-24728e5539e0\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612557,\"participants\":[{\"id\":999772,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999773,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"26d4d3d0-ebf8-44ad-a48f-24728e5539e0\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"26d4d3d0-ebf8-44ad-a48f-24728e5539e0\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"26d4d3d0-ebf8-44ad-a48f-24728e5539e0\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"26d4d3d0-ebf8-44ad-a48f-24728e5539e0\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"26d4d3d0-ebf8-44ad-a48f-24728e5539e0\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612557,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"26d4d3d0-ebf8-44ad-a48f-24728e5539e0\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"26d4d3d0-ebf8-44ad-a48f-24728e5539e0\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612557,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"26d4d3d0-ebf8-44ad-a48f-24728e5539e0\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612557} {\"correlation_id\":\"26d4d3d0-ebf8-44ad-a48f-24728e5539e0\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612557,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"26d4d3d0-ebf8-44ad-a48f-24728e5539e0\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612557,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34} {\"correlation_id\":\"26d4d3d0-ebf8-44ad-a48f-24728e5539e0\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612556,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34}} {\"correlation_id\":\"406b7ad3-26d6-4b1b-9ad7-fff68622b149\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612556} {\"correlation_id\":\"406b7ad3-26d6-4b1b-9ad7-fff68622b149\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612556,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"406b7ad3-26d6-4b1b-9ad7-fff68622b149\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612556,\"participants\":[{\"id\":999770,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999771,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"406b7ad3-26d6-4b1b-9ad7-fff68622b149\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"406b7ad3-26d6-4b1b-9ad7-fff68622b149\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"406b7ad3-26d6-4b1b-9ad7-fff68622b149\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"406b7ad3-26d6-4b1b-9ad7-fff68622b149\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"406b7ad3-26d6-4b1b-9ad7-fff68622b149\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612556,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"406b7ad3-26d6-4b1b-9ad7-fff68622b149\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"406b7ad3-26d6-4b1b-9ad7-fff68622b149\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612556,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"406b7ad3-26d6-4b1b-9ad7-fff68622b149\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612556} {\"correlation_id\":\"406b7ad3-26d6-4b1b-9ad7-fff68622b149\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612556,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"406b7ad3-26d6-4b1b-9ad7-fff68622b149\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612556,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34} {\"correlation_id\":\"406b7ad3-26d6-4b1b-9ad7-fff68622b149\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612555,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34}} {\"correlation_id\":\"c15b7703-f17b-48e7-bf38-122448d79345\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612555} {\"correlation_id\":\"c15b7703-f17b-48e7-bf38-122448d79345\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612555,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"c15b7703-f17b-48e7-bf38-122448d79345\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612555,\"participants\":[{\"id\":999768,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999769,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"c15b7703-f17b-48e7-bf38-122448d79345\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"c15b7703-f17b-48e7-bf38-122448d79345\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"c15b7703-f17b-48e7-bf38-122448d79345\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"c15b7703-f17b-48e7-bf38-122448d79345\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"c15b7703-f17b-48e7-bf38-122448d79345\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612555,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"c15b7703-f17b-48e7-bf38-122448d79345\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"c15b7703-f17b-48e7-bf38-122448d79345\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612555,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"c15b7703-f17b-48e7-bf38-122448d79345\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612555} {\"correlation_id\":\"c15b7703-f17b-48e7-bf38-122448d79345\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612555,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"c15b7703-f17b-48e7-bf38-122448d79345\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612555,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34} {\"correlation_id\":\"c15b7703-f17b-48e7-bf38-122448d79345\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612554,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34}} {\"correlation_id\":\"c9cce71b-d96d-4117-b9fb-bb9672ae7c2b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612554} {\"correlation_id\":\"c9cce71b-d96d-4117-b9fb-bb9672ae7c2b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612554,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"c9cce71b-d96d-4117-b9fb-bb9672ae7c2b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612554,\"participants\":[{\"id\":999766,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999767,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"c9cce71b-d96d-4117-b9fb-bb9672ae7c2b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"c9cce71b-d96d-4117-b9fb-bb9672ae7c2b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"c9cce71b-d96d-4117-b9fb-bb9672ae7c2b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"c9cce71b-d96d-4117-b9fb-bb9672ae7c2b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"c9cce71b-d96d-4117-b9fb-bb9672ae7c2b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612554,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"c9cce71b-d96d-4117-b9fb-bb9672ae7c2b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"c9cce71b-d96d-4117-b9fb-bb9672ae7c2b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612554,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"c9cce71b-d96d-4117-b9fb-bb9672ae7c2b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612554} {\"correlation_id\":\"c9cce71b-d96d-4117-b9fb-bb9672ae7c2b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612554,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"c9cce71b-d96d-4117-b9fb-bb9672ae7c2b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612554,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34} {\"correlation_id\":\"c9cce71b-d96d-4117-b9fb-bb9672ae7c2b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612553,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34}} {\"correlation_id\":\"ffd2857e-be14-4ab1-8533-93b20116db02\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612553} {\"correlation_id\":\"ffd2857e-be14-4ab1-8533-93b20116db02\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612553,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ffd2857e-be14-4ab1-8533-93b20116db02\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612553,\"participants\":[{\"id\":999764,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999765,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"ffd2857e-be14-4ab1-8533-93b20116db02\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ffd2857e-be14-4ab1-8533-93b20116db02\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ffd2857e-be14-4ab1-8533-93b20116db02\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ffd2857e-be14-4ab1-8533-93b20116db02\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ffd2857e-be14-4ab1-8533-93b20116db02\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612553,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"ffd2857e-be14-4ab1-8533-93b20116db02\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"ffd2857e-be14-4ab1-8533-93b20116db02\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612553,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"ffd2857e-be14-4ab1-8533-93b20116db02\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612553} {\"correlation_id\":\"ffd2857e-be14-4ab1-8533-93b20116db02\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612553,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ffd2857e-be14-4ab1-8533-93b20116db02\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612553,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34} {\"correlation_id\":\"ffd2857e-be14-4ab1-8533-93b20116db02\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612552,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34}} {\"correlation_id\":\"7942c5ee-3b2d-4f76-8728-d5343cd7b02e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612552} {\"correlation_id\":\"7942c5ee-3b2d-4f76-8728-d5343cd7b02e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612552,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7942c5ee-3b2d-4f76-8728-d5343cd7b02e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612552,\"participants\":[{\"id\":999762,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999763,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"7942c5ee-3b2d-4f76-8728-d5343cd7b02e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7942c5ee-3b2d-4f76-8728-d5343cd7b02e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7942c5ee-3b2d-4f76-8728-d5343cd7b02e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7942c5ee-3b2d-4f76-8728-d5343cd7b02e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"7942c5ee-3b2d-4f76-8728-d5343cd7b02e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612552,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"7942c5ee-3b2d-4f76-8728-d5343cd7b02e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"7942c5ee-3b2d-4f76-8728-d5343cd7b02e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612552,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"7942c5ee-3b2d-4f76-8728-d5343cd7b02e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612552} {\"correlation_id\":\"7942c5ee-3b2d-4f76-8728-d5343cd7b02e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612552,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7942c5ee-3b2d-4f76-8728-d5343cd7b02e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612552,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34} {\"correlation_id\":\"7942c5ee-3b2d-4f76-8728-d5343cd7b02e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612551,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34}} {\"correlation_id\":\"8068bb0d-ab6d-48ee-abe2-d6cd116aba26\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612551} {\"correlation_id\":\"8068bb0d-ab6d-48ee-abe2-d6cd116aba26\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612551,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8068bb0d-ab6d-48ee-abe2-d6cd116aba26\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612551,\"participants\":[{\"id\":999760,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999761,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"8068bb0d-ab6d-48ee-abe2-d6cd116aba26\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8068bb0d-ab6d-48ee-abe2-d6cd116aba26\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8068bb0d-ab6d-48ee-abe2-d6cd116aba26\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"8068bb0d-ab6d-48ee-abe2-d6cd116aba26\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"8068bb0d-ab6d-48ee-abe2-d6cd116aba26\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612551,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"8068bb0d-ab6d-48ee-abe2-d6cd116aba26\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"8068bb0d-ab6d-48ee-abe2-d6cd116aba26\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612551,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"8068bb0d-ab6d-48ee-abe2-d6cd116aba26\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612551} {\"correlation_id\":\"8068bb0d-ab6d-48ee-abe2-d6cd116aba26\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612551,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8068bb0d-ab6d-48ee-abe2-d6cd116aba26\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612551,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34} {\"correlation_id\":\"8068bb0d-ab6d-48ee-abe2-d6cd116aba26\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:37] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612550,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34}} {\"correlation_id\":\"36bdbff9-cfb6-43af-b7c4-f2caafa8e794\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:37] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612550} {\"correlation_id\":\"36bdbff9-cfb6-43af-b7c4-f2caafa8e794\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:37] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612550,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"36bdbff9-cfb6-43af-b7c4-f2caafa8e794\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:37] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612550,\"participants\":[{\"id\":999758,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999759,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"36bdbff9-cfb6-43af-b7c4-f2caafa8e794\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:37] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"36bdbff9-cfb6-43af-b7c4-f2caafa8e794\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:37] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"36bdbff9-cfb6-43af-b7c4-f2caafa8e794\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:37] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"36bdbff9-cfb6-43af-b7c4-f2caafa8e794\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:37] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"36bdbff9-cfb6-43af-b7c4-f2caafa8e794\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:37] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612550,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"36bdbff9-cfb6-43af-b7c4-f2caafa8e794\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:37] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"36bdbff9-cfb6-43af-b7c4-f2caafa8e794\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:37] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612550,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"36bdbff9-cfb6-43af-b7c4-f2caafa8e794\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:38] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612550} {\"correlation_id\":\"36bdbff9-cfb6-43af-b7c4-f2caafa8e794\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:38] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612550,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"36bdbff9-cfb6-43af-b7c4-f2caafa8e794\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:38] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612550,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34} {\"correlation_id\":\"36bdbff9-cfb6-43af-b7c4-f2caafa8e794\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:38] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612549,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34}} {\"correlation_id\":\"c2ff3c6c-7380-4c1c-a1f5-50044a473ac8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:38] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612549} {\"correlation_id\":\"c2ff3c6c-7380-4c1c-a1f5-50044a473ac8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:38] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612549,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"c2ff3c6c-7380-4c1c-a1f5-50044a473ac8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:38] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612549,\"participants\":[{\"id\":999756,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999757,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"c2ff3c6c-7380-4c1c-a1f5-50044a473ac8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:39] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"c2ff3c6c-7380-4c1c-a1f5-50044a473ac8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:39] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"c2ff3c6c-7380-4c1c-a1f5-50044a473ac8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:39] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"c2ff3c6c-7380-4c1c-a1f5-50044a473ac8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"c2ff3c6c-7380-4c1c-a1f5-50044a473ac8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:39] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612549,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"c2ff3c6c-7380-4c1c-a1f5-50044a473ac8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:39] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"c2ff3c6c-7380-4c1c-a1f5-50044a473ac8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:39] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612549,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"c2ff3c6c-7380-4c1c-a1f5-50044a473ac8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:39] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612549} {\"correlation_id\":\"c2ff3c6c-7380-4c1c-a1f5-50044a473ac8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612549,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"c2ff3c6c-7380-4c1c-a1f5-50044a473ac8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:39] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612549,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34} {\"correlation_id\":\"c2ff3c6c-7380-4c1c-a1f5-50044a473ac8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:40] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612365,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"a9faea34-163e-4d2a-8007-c903951e3b79\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612365} {\"correlation_id\":\"a9faea34-163e-4d2a-8007-c903951e3b79\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612365,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a9faea34-163e-4d2a-8007-c903951e3b79\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:40] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612365,\"participants\":[{\"id\":999563,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999564,\"user_id\":206,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"a9faea34-163e-4d2a-8007-c903951e3b79\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a9faea34-163e-4d2a-8007-c903951e3b79\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a9faea34-163e-4d2a-8007-c903951e3b79\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"a9faea34-163e-4d2a-8007-c903951e3b79\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"a9faea34-163e-4d2a-8007-c903951e3b79\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"a9faea34-163e-4d2a-8007-c903951e3b79\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:40] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612365,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"a9faea34-163e-4d2a-8007-c903951e3b79\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612365,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"a9faea34-163e-4d2a-8007-c903951e3b79\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612365} {\"correlation_id\":\"a9faea34-163e-4d2a-8007-c903951e3b79\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612365,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a9faea34-163e-4d2a-8007-c903951e3b79\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:41] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612365,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"a9faea34-163e-4d2a-8007-c903951e3b79\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}","depth":4,"bounds":{"left":0.4268617,"top":0.10614525,"width":0.5731383,"height":0.89385474},"on_screen":true,"value":"[2026-05-11 11:08:45] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"43b1fb67-9aac-4fc6-9ced-689ecda5c548\",\"trace_id\":\"60028d0e-dcd8-496a-a7ba-3a04b8d646e2\"}\n[2026-05-11 11:08:45] local.INFO: [Commands/AsyncUpdateEsEntities] Starting ES update worker {\"pid\":72650,\"workerId\":\"\",\"target\":\"activities\"} {\"correlation_id\":\"6d49ffdc-2ed7-4eae-a1ee-e25ca95bbea8\",\"trace_id\":\"906573b5-005c-4820-8a32-3b0703ea86dd\"}\n[2026-05-11 11:08:46] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"43b1fb67-9aac-4fc6-9ced-689ecda5c548\",\"trace_id\":\"60028d0e-dcd8-496a-a7ba-3a04b8d646e2\"}\n[2026-05-11 11:09:12] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":615092,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"correlation_id\":\"f33d47cb-76c6-4c27-a641-48cbf69e623d\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:12] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":615092} {\"correlation_id\":\"f33d47cb-76c6-4c27-a641-48cbf69e623d\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:12] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":615092,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"f33d47cb-76c6-4c27-a641-48cbf69e623d\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:12] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":615092,\"participants\":[{\"id\":1004102,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":1004103,\"user_id\":89,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"f33d47cb-76c6-4c27-a641-48cbf69e623d\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:12] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f33d47cb-76c6-4c27-a641-48cbf69e623d\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:12] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f33d47cb-76c6-4c27-a641-48cbf69e623d\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:12] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"f33d47cb-76c6-4c27-a641-48cbf69e623d\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:12] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"f33d47cb-76c6-4c27-a641-48cbf69e623d\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:12] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"f33d47cb-76c6-4c27-a641-48cbf69e623d\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:13] local.INFO: [Hubspot] Failed to fetch contact {\"email\":\"nikolay.nikolov@jiminny.com\",\"reason\":\"[404] Client error: `GET https://api.hubapi.com/crm/v3/objects/contacts/nikolay.nikolov%40jiminny.com?properties=email%2Cfirstname%2Clastname%2Ccountry%2Cphone%2Cmobilephone%2Cjobtitle%2Chubspot_owner_id%2Cassociatedcompanyid%2Cphoto&archived=0&idProperty=email` resulted in a `404 Not Found` response\"} {\"correlation_id\":\"f33d47cb-76c6-4c27-a641-48cbf69e623d\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:13] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"f33d47cb-76c6-4c27-a641-48cbf69e623d\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:13] local.WARNING: [Hubspot] No retry-after header or known message, using default {\"exception_class\":\"SevenShores\\\\Hubspot\\\\Exceptions\\\\BadRequest\",\"message\":\"\"} {\"correlation_id\":\"f33d47cb-76c6-4c27-a641-48cbf69e623d\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:13] local.WARNING: [Hubspot] Received 429 from API {\"team_id\":2,\"config_id\":2,\"retry_after\":10,\"message\":\"\",\"reason\":\"Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response:\n{\\\"status\\\":\\\"error\\\",\\\"message\\\":\\\"You have reached your secondly limit.\\\",\\\"errorType\\\":\\\"RATE_LIMIT\\\",\\\"correlationId\\\":\\\"019e16ba-1 (truncated...)\n\"} {\"correlation_id\":\"f33d47cb-76c6-4c27-a641-48cbf69e623d\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:13] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":10,\"delay\":12} {\"correlation_id\":\"f33d47cb-76c6-4c27-a641-48cbf69e623d\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":614436,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"correlation_id\":\"ccafe863-7885-4971-96fb-87ef6dd4adf3\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614436} {\"correlation_id\":\"ccafe863-7885-4971-96fb-87ef6dd4adf3\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614436,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ccafe863-7885-4971-96fb-87ef6dd4adf3\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":614436,\"participants\":[{\"id\":1002751,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":1002752,\"user_id\":89,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"ccafe863-7885-4971-96fb-87ef6dd4adf3\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ccafe863-7885-4971-96fb-87ef6dd4adf3\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ccafe863-7885-4971-96fb-87ef6dd4adf3\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ccafe863-7885-4971-96fb-87ef6dd4adf3\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ccafe863-7885-4971-96fb-87ef6dd4adf3\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"ccafe863-7885-4971-96fb-87ef6dd4adf3\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"ccafe863-7885-4971-96fb-87ef6dd4adf3\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":10,\"delay\":10} {\"correlation_id\":\"ccafe863-7885-4971-96fb-87ef6dd4adf3\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":614382,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"correlation_id\":\"f00a4506-adfe-4fdc-b932-e6d2bc751fde\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614382} {\"correlation_id\":\"f00a4506-adfe-4fdc-b932-e6d2bc751fde\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614382,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"f00a4506-adfe-4fdc-b932-e6d2bc751fde\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":614382,\"participants\":[{\"id\":1002632,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":1002633,\"user_id\":89,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"f00a4506-adfe-4fdc-b932-e6d2bc751fde\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f00a4506-adfe-4fdc-b932-e6d2bc751fde\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f00a4506-adfe-4fdc-b932-e6d2bc751fde\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"f00a4506-adfe-4fdc-b932-e6d2bc751fde\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"f00a4506-adfe-4fdc-b932-e6d2bc751fde\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"f00a4506-adfe-4fdc-b932-e6d2bc751fde\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"f00a4506-adfe-4fdc-b932-e6d2bc751fde\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":10,\"delay\":12} {\"correlation_id\":\"f00a4506-adfe-4fdc-b932-e6d2bc751fde\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":614381,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"correlation_id\":\"36bd73f5-17f9-4f70-8254-2214543c7f8e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614381} {\"correlation_id\":\"36bd73f5-17f9-4f70-8254-2214543c7f8e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614381,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"36bd73f5-17f9-4f70-8254-2214543c7f8e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":614381,\"participants\":[{\"id\":1002630,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":1002631,\"user_id\":89,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"36bd73f5-17f9-4f70-8254-2214543c7f8e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"36bd73f5-17f9-4f70-8254-2214543c7f8e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"36bd73f5-17f9-4f70-8254-2214543c7f8e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"36bd73f5-17f9-4f70-8254-2214543c7f8e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"36bd73f5-17f9-4f70-8254-2214543c7f8e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"36bd73f5-17f9-4f70-8254-2214543c7f8e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"36bd73f5-17f9-4f70-8254-2214543c7f8e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:14] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":10,\"delay\":10} {\"correlation_id\":\"36bd73f5-17f9-4f70-8254-2214543c7f8e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":614378,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":6167,\"account_id\":null,\"opportunity_id\":null,\"stage_id\":null}} {\"correlation_id\":\"a4a3a058-ec22-4f04-bb14-a9bff18ce214\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614378} {\"correlation_id\":\"a4a3a058-ec22-4f04-bb14-a9bff18ce214\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614378,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a4a3a058-ec22-4f04-bb14-a9bff18ce214\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":614378,\"participants\":[{\"id\":1002623,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":1002624,\"user_id\":null,\"contact_id\":6167,\"lead_id\":null},{\"id\":1002625,\"user_id\":89,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"a4a3a058-ec22-4f04-bb14-a9bff18ce214\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a4a3a058-ec22-4f04-bb14-a9bff18ce214\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a4a3a058-ec22-4f04-bb14-a9bff18ce214\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"a4a3a058-ec22-4f04-bb14-a9bff18ce214\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"a4a3a058-ec22-4f04-bb14-a9bff18ce214\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"a4a3a058-ec22-4f04-bb14-a9bff18ce214\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"a4a3a058-ec22-4f04-bb14-a9bff18ce214\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":10,\"delay\":12} {\"correlation_id\":\"a4a3a058-ec22-4f04-bb14-a9bff18ce214\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613840,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613840} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613840,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613840,\"participants\":[{\"id\":1001764,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1001765,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":261} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":299} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613840,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613840,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613840} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613840,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613840,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"b99b7220-24ab-4f53-a05f-887c3c5341bc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"d86caa21-8980-460b-b2be-88292956cdb3\",\"trace_id\":\"6f80ed90-fa59-444e-a016-33a62019c6a4\"}\n[2026-05-11 11:09:15] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613833,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"ed230e3b-8ded-4591-bfe7-d4ead6f411c1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613833} {\"correlation_id\":\"ed230e3b-8ded-4591-bfe7-d4ead6f411c1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613833,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ed230e3b-8ded-4591-bfe7-d4ead6f411c1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613833,\"participants\":[{\"id\":1001750,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1001751,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"ed230e3b-8ded-4591-bfe7-d4ead6f411c1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"d86caa21-8980-460b-b2be-88292956cdb3\",\"trace_id\":\"6f80ed90-fa59-444e-a016-33a62019c6a4\"}\n[2026-05-11 11:09:15] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"d86caa21-8980-460b-b2be-88292956cdb3\",\"trace_id\":\"6f80ed90-fa59-444e-a016-33a62019c6a4\"}\n[2026-05-11 11:09:15] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ed230e3b-8ded-4591-bfe7-d4ead6f411c1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ed230e3b-8ded-4591-bfe7-d4ead6f411c1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ed230e3b-8ded-4591-bfe7-d4ead6f411c1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ed230e3b-8ded-4591-bfe7-d4ead6f411c1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"ed230e3b-8ded-4591-bfe7-d4ead6f411c1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613833,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"ed230e3b-8ded-4591-bfe7-d4ead6f411c1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613833,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"ed230e3b-8ded-4591-bfe7-d4ead6f411c1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613833} {\"correlation_id\":\"ed230e3b-8ded-4591-bfe7-d4ead6f411c1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613833,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ed230e3b-8ded-4591-bfe7-d4ead6f411c1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613833,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"ed230e3b-8ded-4591-bfe7-d4ead6f411c1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613827,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"d165f8f2-23f6-4f9a-90e7-7b600066818c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613827} {\"correlation_id\":\"d165f8f2-23f6-4f9a-90e7-7b600066818c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613827,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d165f8f2-23f6-4f9a-90e7-7b600066818c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613827,\"participants\":[{\"id\":1001734,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1001735,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"d165f8f2-23f6-4f9a-90e7-7b600066818c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d165f8f2-23f6-4f9a-90e7-7b600066818c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d165f8f2-23f6-4f9a-90e7-7b600066818c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"d165f8f2-23f6-4f9a-90e7-7b600066818c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"d165f8f2-23f6-4f9a-90e7-7b600066818c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"d165f8f2-23f6-4f9a-90e7-7b600066818c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613827,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"d165f8f2-23f6-4f9a-90e7-7b600066818c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613827,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"d165f8f2-23f6-4f9a-90e7-7b600066818c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:15] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613827} {\"correlation_id\":\"d165f8f2-23f6-4f9a-90e7-7b600066818c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613827,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d165f8f2-23f6-4f9a-90e7-7b600066818c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613827,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"d165f8f2-23f6-4f9a-90e7-7b600066818c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613826,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"1816f96e-c36b-474a-8f46-bc8c71bb0079\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613826} {\"correlation_id\":\"1816f96e-c36b-474a-8f46-bc8c71bb0079\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613826,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1816f96e-c36b-474a-8f46-bc8c71bb0079\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613826,\"participants\":[{\"id\":1001732,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1001733,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"1816f96e-c36b-474a-8f46-bc8c71bb0079\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1816f96e-c36b-474a-8f46-bc8c71bb0079\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1816f96e-c36b-474a-8f46-bc8c71bb0079\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1816f96e-c36b-474a-8f46-bc8c71bb0079\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1816f96e-c36b-474a-8f46-bc8c71bb0079\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"1816f96e-c36b-474a-8f46-bc8c71bb0079\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613826,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"1816f96e-c36b-474a-8f46-bc8c71bb0079\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613826,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"1816f96e-c36b-474a-8f46-bc8c71bb0079\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613826} {\"correlation_id\":\"1816f96e-c36b-474a-8f46-bc8c71bb0079\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613826,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1816f96e-c36b-474a-8f46-bc8c71bb0079\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613826,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"1816f96e-c36b-474a-8f46-bc8c71bb0079\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613820,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"a2b1cf94-6665-4574-a821-fcd845d290dc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613820} {\"correlation_id\":\"a2b1cf94-6665-4574-a821-fcd845d290dc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613820,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a2b1cf94-6665-4574-a821-fcd845d290dc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613820,\"participants\":[{\"id\":1001721,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1001722,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"a2b1cf94-6665-4574-a821-fcd845d290dc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a2b1cf94-6665-4574-a821-fcd845d290dc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a2b1cf94-6665-4574-a821-fcd845d290dc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"a2b1cf94-6665-4574-a821-fcd845d290dc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"a2b1cf94-6665-4574-a821-fcd845d290dc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"a2b1cf94-6665-4574-a821-fcd845d290dc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613820,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"a2b1cf94-6665-4574-a821-fcd845d290dc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613820,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"a2b1cf94-6665-4574-a821-fcd845d290dc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613820} {\"correlation_id\":\"a2b1cf94-6665-4574-a821-fcd845d290dc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613820,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a2b1cf94-6665-4574-a821-fcd845d290dc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613820,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"a2b1cf94-6665-4574-a821-fcd845d290dc\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613818,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"7194ba37-7af3-4aa0-80a3-14b38431fd39\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613818} {\"correlation_id\":\"7194ba37-7af3-4aa0-80a3-14b38431fd39\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613818,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7194ba37-7af3-4aa0-80a3-14b38431fd39\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613818,\"participants\":[{\"id\":1001717,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1001718,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"7194ba37-7af3-4aa0-80a3-14b38431fd39\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7194ba37-7af3-4aa0-80a3-14b38431fd39\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7194ba37-7af3-4aa0-80a3-14b38431fd39\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7194ba37-7af3-4aa0-80a3-14b38431fd39\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"7194ba37-7af3-4aa0-80a3-14b38431fd39\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"7194ba37-7af3-4aa0-80a3-14b38431fd39\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613818,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"7194ba37-7af3-4aa0-80a3-14b38431fd39\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613818,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"7194ba37-7af3-4aa0-80a3-14b38431fd39\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613818} {\"correlation_id\":\"7194ba37-7af3-4aa0-80a3-14b38431fd39\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613818,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7194ba37-7af3-4aa0-80a3-14b38431fd39\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613818,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"7194ba37-7af3-4aa0-80a3-14b38431fd39\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613812,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"1fe899e0-6ad7-4159-b5f9-6f34b32d31d6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613812} {\"correlation_id\":\"1fe899e0-6ad7-4159-b5f9-6f34b32d31d6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613812,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1fe899e0-6ad7-4159-b5f9-6f34b32d31d6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:16] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613812,\"participants\":[{\"id\":1001705,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1001706,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"1fe899e0-6ad7-4159-b5f9-6f34b32d31d6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1fe899e0-6ad7-4159-b5f9-6f34b32d31d6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1fe899e0-6ad7-4159-b5f9-6f34b32d31d6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1fe899e0-6ad7-4159-b5f9-6f34b32d31d6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1fe899e0-6ad7-4159-b5f9-6f34b32d31d6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"1fe899e0-6ad7-4159-b5f9-6f34b32d31d6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613812,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"1fe899e0-6ad7-4159-b5f9-6f34b32d31d6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613812,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"1fe899e0-6ad7-4159-b5f9-6f34b32d31d6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613812} {\"correlation_id\":\"1fe899e0-6ad7-4159-b5f9-6f34b32d31d6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613812,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1fe899e0-6ad7-4159-b5f9-6f34b32d31d6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613812,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"1fe899e0-6ad7-4159-b5f9-6f34b32d31d6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613807,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4484,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613807} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613807,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613807,\"participants\":[{\"id\":1001690,\"user_id\":253,\"contact_id\":null,\"lead_id\":null},{\"id\":1001691,\"user_id\":null,\"contact_id\":4484,\"lead_id\":null}]} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613807,\"team_id\":2,\"email\":\"preslava.ivanova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":243,\"contact_id\":4484,\"owner_id\":253} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":243,\"contact_id\":4484} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":243,\"contact_id\":4484,\"opportunity_id\":276} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":1.06,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"6d49ffdc-2ed7-4eae-a1ee-e25ca95bbea8\",\"trace_id\":\"906573b5-005c-4820-8a32-3b0703ea86dd\"}\n[2026-05-11 11:09:17] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"tsvetomir.banovski@gmail.com\"} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613807,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613807} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613807,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613807,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4484,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"3056d45f-0cd9-4a93-a3df-e55dc6891629\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613806,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34}} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613806} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613806,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613806,\"participants\":[{\"id\":1001688,\"user_id\":253,\"contact_id\":null,\"lead_id\":null},{\"id\":1001689,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null}]} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613806,\"team_id\":2,\"email\":\"preslava.ivanova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":253} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":244,\"contact_id\":4487} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":350} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613806,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613806} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613806,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613806,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34} {\"correlation_id\":\"f5ad2183-f63f-4901-8bf0-bc6fc374aaae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613805,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34}} {\"correlation_id\":\"e6a724a6-dc6e-4440-ab48-641336d6ca17\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613805} {\"correlation_id\":\"e6a724a6-dc6e-4440-ab48-641336d6ca17\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613805,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e6a724a6-dc6e-4440-ab48-641336d6ca17\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613805,\"participants\":[{\"id\":1001686,\"user_id\":253,\"contact_id\":null,\"lead_id\":null},{\"id\":1001687,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null}]} {\"correlation_id\":\"e6a724a6-dc6e-4440-ab48-641336d6ca17\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e6a724a6-dc6e-4440-ab48-641336d6ca17\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e6a724a6-dc6e-4440-ab48-641336d6ca17\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"e6a724a6-dc6e-4440-ab48-641336d6ca17\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"e6a724a6-dc6e-4440-ab48-641336d6ca17\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613805,\"team_id\":2,\"email\":\"preslava.ivanova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"e6a724a6-dc6e-4440-ab48-641336d6ca17\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"e6a724a6-dc6e-4440-ab48-641336d6ca17\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:17] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613805,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"e6a724a6-dc6e-4440-ab48-641336d6ca17\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613805} {\"correlation_id\":\"e6a724a6-dc6e-4440-ab48-641336d6ca17\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613805,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e6a724a6-dc6e-4440-ab48-641336d6ca17\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613805,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34} {\"correlation_id\":\"e6a724a6-dc6e-4440-ab48-641336d6ca17\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613698,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"67158d25-23dc-4314-8813-caa3c43fa3f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613698} {\"correlation_id\":\"67158d25-23dc-4314-8813-caa3c43fa3f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613698,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"67158d25-23dc-4314-8813-caa3c43fa3f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613698,\"participants\":[{\"id\":1001667,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1001668,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"67158d25-23dc-4314-8813-caa3c43fa3f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"67158d25-23dc-4314-8813-caa3c43fa3f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"67158d25-23dc-4314-8813-caa3c43fa3f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"67158d25-23dc-4314-8813-caa3c43fa3f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"67158d25-23dc-4314-8813-caa3c43fa3f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"67158d25-23dc-4314-8813-caa3c43fa3f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613698,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"67158d25-23dc-4314-8813-caa3c43fa3f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613698,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"67158d25-23dc-4314-8813-caa3c43fa3f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613698} {\"correlation_id\":\"67158d25-23dc-4314-8813-caa3c43fa3f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613698,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"67158d25-23dc-4314-8813-caa3c43fa3f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613698,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"67158d25-23dc-4314-8813-caa3c43fa3f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613697,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"8d2a290e-88e6-494a-91c2-f63f0338f30f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613697} {\"correlation_id\":\"8d2a290e-88e6-494a-91c2-f63f0338f30f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613697,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8d2a290e-88e6-494a-91c2-f63f0338f30f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613697,\"participants\":[{\"id\":1001665,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1001666,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"8d2a290e-88e6-494a-91c2-f63f0338f30f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8d2a290e-88e6-494a-91c2-f63f0338f30f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8d2a290e-88e6-494a-91c2-f63f0338f30f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"8d2a290e-88e6-494a-91c2-f63f0338f30f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"8d2a290e-88e6-494a-91c2-f63f0338f30f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"8d2a290e-88e6-494a-91c2-f63f0338f30f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613697,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"8d2a290e-88e6-494a-91c2-f63f0338f30f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613697,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"8d2a290e-88e6-494a-91c2-f63f0338f30f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613697} {\"correlation_id\":\"8d2a290e-88e6-494a-91c2-f63f0338f30f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613697,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8d2a290e-88e6-494a-91c2-f63f0338f30f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:18] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613697,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"8d2a290e-88e6-494a-91c2-f63f0338f30f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613696,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"d1c50e93-0488-4315-a739-f89181b77d87\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613696} {\"correlation_id\":\"d1c50e93-0488-4315-a739-f89181b77d87\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613696,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d1c50e93-0488-4315-a739-f89181b77d87\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613696,\"participants\":[{\"id\":1001663,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1001664,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"d1c50e93-0488-4315-a739-f89181b77d87\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d1c50e93-0488-4315-a739-f89181b77d87\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d1c50e93-0488-4315-a739-f89181b77d87\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"d1c50e93-0488-4315-a739-f89181b77d87\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"d1c50e93-0488-4315-a739-f89181b77d87\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"d1c50e93-0488-4315-a739-f89181b77d87\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613696,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"d1c50e93-0488-4315-a739-f89181b77d87\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613696,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"d1c50e93-0488-4315-a739-f89181b77d87\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613696} {\"correlation_id\":\"d1c50e93-0488-4315-a739-f89181b77d87\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613696,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d1c50e93-0488-4315-a739-f89181b77d87\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613696,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"d1c50e93-0488-4315-a739-f89181b77d87\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613695,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"6dbd1e2c-b89e-47b6-9c2f-d9d7a56b5383\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613695} {\"correlation_id\":\"6dbd1e2c-b89e-47b6-9c2f-d9d7a56b5383\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613695,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"6dbd1e2c-b89e-47b6-9c2f-d9d7a56b5383\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613695,\"participants\":[{\"id\":1001661,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1001662,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"6dbd1e2c-b89e-47b6-9c2f-d9d7a56b5383\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"6dbd1e2c-b89e-47b6-9c2f-d9d7a56b5383\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"6dbd1e2c-b89e-47b6-9c2f-d9d7a56b5383\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"6dbd1e2c-b89e-47b6-9c2f-d9d7a56b5383\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"6dbd1e2c-b89e-47b6-9c2f-d9d7a56b5383\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"6dbd1e2c-b89e-47b6-9c2f-d9d7a56b5383\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613695,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"6dbd1e2c-b89e-47b6-9c2f-d9d7a56b5383\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613695,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"6dbd1e2c-b89e-47b6-9c2f-d9d7a56b5383\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613695} {\"correlation_id\":\"6dbd1e2c-b89e-47b6-9c2f-d9d7a56b5383\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613695,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"6dbd1e2c-b89e-47b6-9c2f-d9d7a56b5383\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613695,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"6dbd1e2c-b89e-47b6-9c2f-d9d7a56b5383\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613694,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"cd14d297-e2e1-425f-b745-361ca50df005\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613694} {\"correlation_id\":\"cd14d297-e2e1-425f-b745-361ca50df005\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613694,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cd14d297-e2e1-425f-b745-361ca50df005\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613694,\"participants\":[{\"id\":1001659,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1001660,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"cd14d297-e2e1-425f-b745-361ca50df005\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cd14d297-e2e1-425f-b745-361ca50df005\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cd14d297-e2e1-425f-b745-361ca50df005\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cd14d297-e2e1-425f-b745-361ca50df005\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"cd14d297-e2e1-425f-b745-361ca50df005\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"cd14d297-e2e1-425f-b745-361ca50df005\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613694,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"cd14d297-e2e1-425f-b745-361ca50df005\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613694,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"cd14d297-e2e1-425f-b745-361ca50df005\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613694} {\"correlation_id\":\"cd14d297-e2e1-425f-b745-361ca50df005\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613694,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cd14d297-e2e1-425f-b745-361ca50df005\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:19] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613694,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"cd14d297-e2e1-425f-b745-361ca50df005\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613157,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34}} {\"correlation_id\":\"ed6d3fa0-08c4-412f-b60d-4582c6dfa704\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613157} {\"correlation_id\":\"ed6d3fa0-08c4-412f-b60d-4582c6dfa704\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613157,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ed6d3fa0-08c4-412f-b60d-4582c6dfa704\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613157,\"participants\":[{\"id\":1000746,\"user_id\":253,\"contact_id\":null,\"lead_id\":null},{\"id\":1000747,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null}]} {\"correlation_id\":\"ed6d3fa0-08c4-412f-b60d-4582c6dfa704\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ed6d3fa0-08c4-412f-b60d-4582c6dfa704\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ed6d3fa0-08c4-412f-b60d-4582c6dfa704\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ed6d3fa0-08c4-412f-b60d-4582c6dfa704\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ed6d3fa0-08c4-412f-b60d-4582c6dfa704\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613157,\"team_id\":2,\"email\":\"preslava.ivanova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"ed6d3fa0-08c4-412f-b60d-4582c6dfa704\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"ed6d3fa0-08c4-412f-b60d-4582c6dfa704\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613157,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"ed6d3fa0-08c4-412f-b60d-4582c6dfa704\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613157} {\"correlation_id\":\"ed6d3fa0-08c4-412f-b60d-4582c6dfa704\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613157,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ed6d3fa0-08c4-412f-b60d-4582c6dfa704\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613157,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34} {\"correlation_id\":\"ed6d3fa0-08c4-412f-b60d-4582c6dfa704\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613156,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34}} {\"correlation_id\":\"77af6469-661f-4d4b-b741-a5b059c8b181\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613156} {\"correlation_id\":\"77af6469-661f-4d4b-b741-a5b059c8b181\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613156,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"77af6469-661f-4d4b-b741-a5b059c8b181\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613156,\"participants\":[{\"id\":1000744,\"user_id\":253,\"contact_id\":null,\"lead_id\":null},{\"id\":1000745,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null}]} {\"correlation_id\":\"77af6469-661f-4d4b-b741-a5b059c8b181\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"77af6469-661f-4d4b-b741-a5b059c8b181\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"77af6469-661f-4d4b-b741-a5b059c8b181\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"77af6469-661f-4d4b-b741-a5b059c8b181\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"77af6469-661f-4d4b-b741-a5b059c8b181\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613156,\"team_id\":2,\"email\":\"preslava.ivanova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"77af6469-661f-4d4b-b741-a5b059c8b181\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"77af6469-661f-4d4b-b741-a5b059c8b181\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613156,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"77af6469-661f-4d4b-b741-a5b059c8b181\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613156} {\"correlation_id\":\"77af6469-661f-4d4b-b741-a5b059c8b181\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613156,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"77af6469-661f-4d4b-b741-a5b059c8b181\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613156,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34} {\"correlation_id\":\"77af6469-661f-4d4b-b741-a5b059c8b181\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613155,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34}} {\"correlation_id\":\"6cd64b7d-2826-41b3-83e4-000c5cd88462\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613155} {\"correlation_id\":\"6cd64b7d-2826-41b3-83e4-000c5cd88462\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613155,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"6cd64b7d-2826-41b3-83e4-000c5cd88462\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613155,\"participants\":[{\"id\":1000742,\"user_id\":253,\"contact_id\":null,\"lead_id\":null},{\"id\":1000743,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null}]} {\"correlation_id\":\"6cd64b7d-2826-41b3-83e4-000c5cd88462\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"6cd64b7d-2826-41b3-83e4-000c5cd88462\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"6cd64b7d-2826-41b3-83e4-000c5cd88462\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"6cd64b7d-2826-41b3-83e4-000c5cd88462\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"6cd64b7d-2826-41b3-83e4-000c5cd88462\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613155,\"team_id\":2,\"email\":\"preslava.ivanova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"6cd64b7d-2826-41b3-83e4-000c5cd88462\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"6cd64b7d-2826-41b3-83e4-000c5cd88462\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613155,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"6cd64b7d-2826-41b3-83e4-000c5cd88462\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613155} {\"correlation_id\":\"6cd64b7d-2826-41b3-83e4-000c5cd88462\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613155,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"6cd64b7d-2826-41b3-83e4-000c5cd88462\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613155,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34} {\"correlation_id\":\"6cd64b7d-2826-41b3-83e4-000c5cd88462\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613130,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"8d0dfbe8-30bd-4332-bf52-762b3a44300b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613130} {\"correlation_id\":\"8d0dfbe8-30bd-4332-bf52-762b3a44300b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613130,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8d0dfbe8-30bd-4332-bf52-762b3a44300b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613130,\"participants\":[{\"id\":1000693,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1000694,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"8d0dfbe8-30bd-4332-bf52-762b3a44300b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8d0dfbe8-30bd-4332-bf52-762b3a44300b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8d0dfbe8-30bd-4332-bf52-762b3a44300b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"8d0dfbe8-30bd-4332-bf52-762b3a44300b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"8d0dfbe8-30bd-4332-bf52-762b3a44300b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"8d0dfbe8-30bd-4332-bf52-762b3a44300b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613130,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"8d0dfbe8-30bd-4332-bf52-762b3a44300b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613130,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"8d0dfbe8-30bd-4332-bf52-762b3a44300b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:20] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613130} {\"correlation_id\":\"8d0dfbe8-30bd-4332-bf52-762b3a44300b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613130,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8d0dfbe8-30bd-4332-bf52-762b3a44300b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613130,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"8d0dfbe8-30bd-4332-bf52-762b3a44300b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612924,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":165,\"stage_id\":89}} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612924} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612924,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612924,\"participants\":[{\"id\":1000290,\"user_id\":19,\"contact_id\":null,\"lead_id\":null},{\"id\":1000291,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612924,\"team_id\":2,\"email\":\"james.graham@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":69,\"contact_id\":97,\"owner_id\":19} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":69,\"contact_id\":97,\"opportunity_id\":165} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612924,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612924} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612924,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:21] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612924,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":165,\"stage_id\":89} {\"correlation_id\":\"589c0894-ea02-4860-a29d-b4c01aebed50\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:23] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612923,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":165,\"stage_id\":89}} {\"correlation_id\":\"773e5722-a5c7-48ec-b0d8-11b3aa2aa37a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:23] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612923} {\"correlation_id\":\"773e5722-a5c7-48ec-b0d8-11b3aa2aa37a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:23] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612923,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"773e5722-a5c7-48ec-b0d8-11b3aa2aa37a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:23] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612923,\"participants\":[{\"id\":1000288,\"user_id\":19,\"contact_id\":null,\"lead_id\":null},{\"id\":1000289,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"773e5722-a5c7-48ec-b0d8-11b3aa2aa37a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:23] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"773e5722-a5c7-48ec-b0d8-11b3aa2aa37a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:23] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"773e5722-a5c7-48ec-b0d8-11b3aa2aa37a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:23] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"773e5722-a5c7-48ec-b0d8-11b3aa2aa37a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:23] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"773e5722-a5c7-48ec-b0d8-11b3aa2aa37a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:23] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612923,\"team_id\":2,\"email\":\"james.graham@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"773e5722-a5c7-48ec-b0d8-11b3aa2aa37a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:23] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"773e5722-a5c7-48ec-b0d8-11b3aa2aa37a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:23] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612923,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"773e5722-a5c7-48ec-b0d8-11b3aa2aa37a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:24] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612923} {\"correlation_id\":\"773e5722-a5c7-48ec-b0d8-11b3aa2aa37a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:24] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612923,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"773e5722-a5c7-48ec-b0d8-11b3aa2aa37a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:24] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612923,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":165,\"stage_id\":89} {\"correlation_id\":\"773e5722-a5c7-48ec-b0d8-11b3aa2aa37a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:24] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612922,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":165,\"stage_id\":89}} {\"correlation_id\":\"7d6f9c8c-16e0-4f84-b07d-adddfa5c739f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:24] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612922} {\"correlation_id\":\"7d6f9c8c-16e0-4f84-b07d-adddfa5c739f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:24] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612922,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7d6f9c8c-16e0-4f84-b07d-adddfa5c739f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:24] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612922,\"participants\":[{\"id\":1000286,\"user_id\":19,\"contact_id\":null,\"lead_id\":null},{\"id\":1000287,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"7d6f9c8c-16e0-4f84-b07d-adddfa5c739f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:24] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7d6f9c8c-16e0-4f84-b07d-adddfa5c739f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:24] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7d6f9c8c-16e0-4f84-b07d-adddfa5c739f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7d6f9c8c-16e0-4f84-b07d-adddfa5c739f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"7d6f9c8c-16e0-4f84-b07d-adddfa5c739f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612922,\"team_id\":2,\"email\":\"james.graham@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"7d6f9c8c-16e0-4f84-b07d-adddfa5c739f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"7d6f9c8c-16e0-4f84-b07d-adddfa5c739f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612922,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"7d6f9c8c-16e0-4f84-b07d-adddfa5c739f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612922} {\"correlation_id\":\"7d6f9c8c-16e0-4f84-b07d-adddfa5c739f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612922,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7d6f9c8c-16e0-4f84-b07d-adddfa5c739f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612922,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":165,\"stage_id\":89} {\"correlation_id\":\"7d6f9c8c-16e0-4f84-b07d-adddfa5c739f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612847,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"462c34b9-0b57-4e81-a9e2-5ce4a6900814\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612847} {\"correlation_id\":\"462c34b9-0b57-4e81-a9e2-5ce4a6900814\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612847,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"462c34b9-0b57-4e81-a9e2-5ce4a6900814\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612847,\"participants\":[{\"id\":1000130,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":1000131,\"user_id\":261,\"contact_id\":null,\"lead_id\":null},{\"id\":1000151,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null}]} {\"correlation_id\":\"462c34b9-0b57-4e81-a9e2-5ce4a6900814\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"462c34b9-0b57-4e81-a9e2-5ce4a6900814\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"462c34b9-0b57-4e81-a9e2-5ce4a6900814\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"462c34b9-0b57-4e81-a9e2-5ce4a6900814\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"462c34b9-0b57-4e81-a9e2-5ce4a6900814\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"correlation_id\":\"462c34b9-0b57-4e81-a9e2-5ce4a6900814\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:25] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"503de928-3a1a-4314-a23f-ca2625111f7f\",\"trace_id\":\"7ee54e65-014c-4ae3-821a-dc0488dc10ed\"}\n[2026-05-11 11:09:26] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"503de928-3a1a-4314-a23f-ca2625111f7f\",\"trace_id\":\"7ee54e65-014c-4ae3-821a-dc0488dc10ed\"}\n[2026-05-11 11:09:26] local.INFO: [Hubspot] Failed to fetch contact {\"email\":\"adelina.petrova@jiminny.com\",\"reason\":\"[404] Client error: `GET https://api.hubapi.com/crm/v3/objects/contacts/adelina.petrova%40jiminny.com?properties=email%2Cfirstname%2Clastname%2Ccountry%2Cphone%2Cmobilephone%2Cjobtitle%2Chubspot_owner_id%2Cassociatedcompanyid%2Cphoto&archived=0&idProperty=email` resulted in a `404 Not Found` response\"} {\"correlation_id\":\"462c34b9-0b57-4e81-a9e2-5ce4a6900814\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:26] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"correlation_id\":\"462c34b9-0b57-4e81-a9e2-5ce4a6900814\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:26] local.WARNING: [Hubspot] No retry-after header or known message, using default {\"exception_class\":\"SevenShores\\\\Hubspot\\\\Exceptions\\\\BadRequest\",\"message\":\"\"} {\"correlation_id\":\"462c34b9-0b57-4e81-a9e2-5ce4a6900814\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:26] local.WARNING: [Hubspot] Received 429 from API {\"team_id\":2,\"config_id\":2,\"retry_after\":10,\"message\":\"\",\"reason\":\"Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response:\n{\\\"status\\\":\\\"error\\\",\\\"message\\\":\\\"You have reached your secondly limit.\\\",\\\"errorType\\\":\\\"RATE_LIMIT\\\",\\\"correlationId\\\":\\\"019e16ba-4 (truncated...)\n\"} {\"correlation_id\":\"462c34b9-0b57-4e81-a9e2-5ce4a6900814\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:26] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":10,\"delay\":14} {\"correlation_id\":\"462c34b9-0b57-4e81-a9e2-5ce4a6900814\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:26] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612822,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"ca259dfb-7b24-4406-9b61-a4f28761020b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:26] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612822} {\"correlation_id\":\"ca259dfb-7b24-4406-9b61-a4f28761020b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:26] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612822,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ca259dfb-7b24-4406-9b61-a4f28761020b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:26] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612822,\"participants\":[{\"id\":1000080,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1000081,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"ca259dfb-7b24-4406-9b61-a4f28761020b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ca259dfb-7b24-4406-9b61-a4f28761020b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ca259dfb-7b24-4406-9b61-a4f28761020b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ca259dfb-7b24-4406-9b61-a4f28761020b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ca259dfb-7b24-4406-9b61-a4f28761020b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"ca259dfb-7b24-4406-9b61-a4f28761020b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612822,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"ca259dfb-7b24-4406-9b61-a4f28761020b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612822,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"ca259dfb-7b24-4406-9b61-a4f28761020b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612822} {\"correlation_id\":\"ca259dfb-7b24-4406-9b61-a4f28761020b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612822,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ca259dfb-7b24-4406-9b61-a4f28761020b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612822,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"ca259dfb-7b24-4406-9b61-a4f28761020b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612819,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"cd602b18-88a5-4ea9-afef-e52be017fc0f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612819} {\"correlation_id\":\"cd602b18-88a5-4ea9-afef-e52be017fc0f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612819,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cd602b18-88a5-4ea9-afef-e52be017fc0f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612819,\"participants\":[{\"id\":1000073,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1000074,\"user_id\":261,\"contact_id\":null,\"lead_id\":null},{\"id\":1000075,\"user_id\":null,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"cd602b18-88a5-4ea9-afef-e52be017fc0f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cd602b18-88a5-4ea9-afef-e52be017fc0f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cd602b18-88a5-4ea9-afef-e52be017fc0f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cd602b18-88a5-4ea9-afef-e52be017fc0f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"cd602b18-88a5-4ea9-afef-e52be017fc0f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"cd602b18-88a5-4ea9-afef-e52be017fc0f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612819,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"cd602b18-88a5-4ea9-afef-e52be017fc0f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"correlation_id\":\"cd602b18-88a5-4ea9-afef-e52be017fc0f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"correlation_id\":\"cd602b18-88a5-4ea9-afef-e52be017fc0f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":10,\"delay\":10} {\"correlation_id\":\"cd602b18-88a5-4ea9-afef-e52be017fc0f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612673,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"d86174e3-e3b0-41d6-b9f5-97de4ca4da9f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612673} {\"correlation_id\":\"d86174e3-e3b0-41d6-b9f5-97de4ca4da9f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612673,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d86174e3-e3b0-41d6-b9f5-97de4ca4da9f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612673,\"participants\":[{\"id\":999993,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":999994,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"d86174e3-e3b0-41d6-b9f5-97de4ca4da9f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d86174e3-e3b0-41d6-b9f5-97de4ca4da9f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d86174e3-e3b0-41d6-b9f5-97de4ca4da9f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"d86174e3-e3b0-41d6-b9f5-97de4ca4da9f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"d86174e3-e3b0-41d6-b9f5-97de4ca4da9f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"d86174e3-e3b0-41d6-b9f5-97de4ca4da9f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612673,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"d86174e3-e3b0-41d6-b9f5-97de4ca4da9f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612673,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"d86174e3-e3b0-41d6-b9f5-97de4ca4da9f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612673} {\"correlation_id\":\"d86174e3-e3b0-41d6-b9f5-97de4ca4da9f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612673,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d86174e3-e3b0-41d6-b9f5-97de4ca4da9f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612673,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"d86174e3-e3b0-41d6-b9f5-97de4ca4da9f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612642,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"2f9f8923-a6e3-4e5b-a1ae-cdea42bb3cda\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612642} {\"correlation_id\":\"2f9f8923-a6e3-4e5b-a1ae-cdea42bb3cda\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612642,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2f9f8923-a6e3-4e5b-a1ae-cdea42bb3cda\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612642,\"participants\":[{\"id\":999935,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":999936,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"2f9f8923-a6e3-4e5b-a1ae-cdea42bb3cda\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2f9f8923-a6e3-4e5b-a1ae-cdea42bb3cda\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2f9f8923-a6e3-4e5b-a1ae-cdea42bb3cda\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"2f9f8923-a6e3-4e5b-a1ae-cdea42bb3cda\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"2f9f8923-a6e3-4e5b-a1ae-cdea42bb3cda\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"2f9f8923-a6e3-4e5b-a1ae-cdea42bb3cda\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612642,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"2f9f8923-a6e3-4e5b-a1ae-cdea42bb3cda\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612642,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"2f9f8923-a6e3-4e5b-a1ae-cdea42bb3cda\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612642} {\"correlation_id\":\"2f9f8923-a6e3-4e5b-a1ae-cdea42bb3cda\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612642,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2f9f8923-a6e3-4e5b-a1ae-cdea42bb3cda\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:27] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612642,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"2f9f8923-a6e3-4e5b-a1ae-cdea42bb3cda\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612598,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612598} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612598,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612598,\"participants\":[{\"id\":999857,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999858,\"user_id\":206,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":243,\"contact_id\":4491,\"owner_id\":206} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":243,\"contact_id\":4491} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":243,\"contact_id\":4491,\"opportunity_id\":276} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612598,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612598,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612598} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612598,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612598,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"65bf29b2-12dc-4d67-a47e-52e71166d9f6\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":5.94,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"6d49ffdc-2ed7-4eae-a1ee-e25ca95bbea8\",\"trace_id\":\"906573b5-005c-4820-8a32-3b0703ea86dd\"}\n[2026-05-11 11:09:28] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612597,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"c69a3a24-bab5-4d56-887b-01111944b3a2\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612597} {\"correlation_id\":\"c69a3a24-bab5-4d56-887b-01111944b3a2\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612597,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"c69a3a24-bab5-4d56-887b-01111944b3a2\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612597,\"participants\":[{\"id\":999855,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999856,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null}]} {\"correlation_id\":\"c69a3a24-bab5-4d56-887b-01111944b3a2\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"c69a3a24-bab5-4d56-887b-01111944b3a2\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"c69a3a24-bab5-4d56-887b-01111944b3a2\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"c69a3a24-bab5-4d56-887b-01111944b3a2\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"c69a3a24-bab5-4d56-887b-01111944b3a2\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612597,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"c69a3a24-bab5-4d56-887b-01111944b3a2\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"c69a3a24-bab5-4d56-887b-01111944b3a2\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612597,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"c69a3a24-bab5-4d56-887b-01111944b3a2\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612597} {\"correlation_id\":\"c69a3a24-bab5-4d56-887b-01111944b3a2\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612597,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"c69a3a24-bab5-4d56-887b-01111944b3a2\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612597,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"c69a3a24-bab5-4d56-887b-01111944b3a2\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612596,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"0da9fc28-653b-406f-bafe-5d78010cb3da\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612596} {\"correlation_id\":\"0da9fc28-653b-406f-bafe-5d78010cb3da\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612596,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0da9fc28-653b-406f-bafe-5d78010cb3da\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612596,\"participants\":[{\"id\":999853,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999854,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null}]} {\"correlation_id\":\"0da9fc28-653b-406f-bafe-5d78010cb3da\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:28] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0da9fc28-653b-406f-bafe-5d78010cb3da\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0da9fc28-653b-406f-bafe-5d78010cb3da\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0da9fc28-653b-406f-bafe-5d78010cb3da\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0da9fc28-653b-406f-bafe-5d78010cb3da\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612596,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"0da9fc28-653b-406f-bafe-5d78010cb3da\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"0da9fc28-653b-406f-bafe-5d78010cb3da\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612596,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"0da9fc28-653b-406f-bafe-5d78010cb3da\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612596} {\"correlation_id\":\"0da9fc28-653b-406f-bafe-5d78010cb3da\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612596,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0da9fc28-653b-406f-bafe-5d78010cb3da\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612596,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"0da9fc28-653b-406f-bafe-5d78010cb3da\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612595,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"f7dd9c18-1f48-4adc-b2a2-a5e768444dfd\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612595} {\"correlation_id\":\"f7dd9c18-1f48-4adc-b2a2-a5e768444dfd\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612595,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"f7dd9c18-1f48-4adc-b2a2-a5e768444dfd\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612595,\"participants\":[{\"id\":999851,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999852,\"user_id\":206,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"f7dd9c18-1f48-4adc-b2a2-a5e768444dfd\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f7dd9c18-1f48-4adc-b2a2-a5e768444dfd\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f7dd9c18-1f48-4adc-b2a2-a5e768444dfd\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"f7dd9c18-1f48-4adc-b2a2-a5e768444dfd\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"f7dd9c18-1f48-4adc-b2a2-a5e768444dfd\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"f7dd9c18-1f48-4adc-b2a2-a5e768444dfd\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612595,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"f7dd9c18-1f48-4adc-b2a2-a5e768444dfd\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612595,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"f7dd9c18-1f48-4adc-b2a2-a5e768444dfd\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612595} {\"correlation_id\":\"f7dd9c18-1f48-4adc-b2a2-a5e768444dfd\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612595,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"f7dd9c18-1f48-4adc-b2a2-a5e768444dfd\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612595,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"f7dd9c18-1f48-4adc-b2a2-a5e768444dfd\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612594,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"4dacaa76-fc8b-462e-95ae-b74602d62a8f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612594} {\"correlation_id\":\"4dacaa76-fc8b-462e-95ae-b74602d62a8f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612594,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4dacaa76-fc8b-462e-95ae-b74602d62a8f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612594,\"participants\":[{\"id\":999849,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999850,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null}]} {\"correlation_id\":\"4dacaa76-fc8b-462e-95ae-b74602d62a8f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4dacaa76-fc8b-462e-95ae-b74602d62a8f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4dacaa76-fc8b-462e-95ae-b74602d62a8f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"4dacaa76-fc8b-462e-95ae-b74602d62a8f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"4dacaa76-fc8b-462e-95ae-b74602d62a8f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612594,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"4dacaa76-fc8b-462e-95ae-b74602d62a8f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"4dacaa76-fc8b-462e-95ae-b74602d62a8f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612594,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"4dacaa76-fc8b-462e-95ae-b74602d62a8f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612594} {\"correlation_id\":\"4dacaa76-fc8b-462e-95ae-b74602d62a8f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612594,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4dacaa76-fc8b-462e-95ae-b74602d62a8f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612594,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"4dacaa76-fc8b-462e-95ae-b74602d62a8f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612593,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"0845a766-3bc8-4303-83dc-9f0e57d46a44\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612593} {\"correlation_id\":\"0845a766-3bc8-4303-83dc-9f0e57d46a44\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612593,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0845a766-3bc8-4303-83dc-9f0e57d46a44\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612593,\"participants\":[{\"id\":999847,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999848,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null}]} {\"correlation_id\":\"0845a766-3bc8-4303-83dc-9f0e57d46a44\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0845a766-3bc8-4303-83dc-9f0e57d46a44\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0845a766-3bc8-4303-83dc-9f0e57d46a44\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0845a766-3bc8-4303-83dc-9f0e57d46a44\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0845a766-3bc8-4303-83dc-9f0e57d46a44\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612593,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"0845a766-3bc8-4303-83dc-9f0e57d46a44\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"0845a766-3bc8-4303-83dc-9f0e57d46a44\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612593,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"0845a766-3bc8-4303-83dc-9f0e57d46a44\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612593} {\"correlation_id\":\"0845a766-3bc8-4303-83dc-9f0e57d46a44\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612593,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0845a766-3bc8-4303-83dc-9f0e57d46a44\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612593,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"0845a766-3bc8-4303-83dc-9f0e57d46a44\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612592,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"315733d6-e316-4fb7-9ab6-c38b0bc2a394\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612592} {\"correlation_id\":\"315733d6-e316-4fb7-9ab6-c38b0bc2a394\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612592,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"315733d6-e316-4fb7-9ab6-c38b0bc2a394\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612592,\"participants\":[{\"id\":999845,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999846,\"user_id\":206,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"315733d6-e316-4fb7-9ab6-c38b0bc2a394\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"315733d6-e316-4fb7-9ab6-c38b0bc2a394\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"315733d6-e316-4fb7-9ab6-c38b0bc2a394\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"315733d6-e316-4fb7-9ab6-c38b0bc2a394\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"315733d6-e316-4fb7-9ab6-c38b0bc2a394\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"315733d6-e316-4fb7-9ab6-c38b0bc2a394\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612592,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"315733d6-e316-4fb7-9ab6-c38b0bc2a394\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612592,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"315733d6-e316-4fb7-9ab6-c38b0bc2a394\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612592} {\"correlation_id\":\"315733d6-e316-4fb7-9ab6-c38b0bc2a394\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612592,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"315733d6-e316-4fb7-9ab6-c38b0bc2a394\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:29] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612592,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"315733d6-e316-4fb7-9ab6-c38b0bc2a394\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612591,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"a4f3cee6-628d-4ea1-afef-271709541a6f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612591} {\"correlation_id\":\"a4f3cee6-628d-4ea1-afef-271709541a6f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612591,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a4f3cee6-628d-4ea1-afef-271709541a6f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612591,\"participants\":[{\"id\":999843,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999844,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null}]} {\"correlation_id\":\"a4f3cee6-628d-4ea1-afef-271709541a6f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a4f3cee6-628d-4ea1-afef-271709541a6f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a4f3cee6-628d-4ea1-afef-271709541a6f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"a4f3cee6-628d-4ea1-afef-271709541a6f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"a4f3cee6-628d-4ea1-afef-271709541a6f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612591,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"a4f3cee6-628d-4ea1-afef-271709541a6f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"a4f3cee6-628d-4ea1-afef-271709541a6f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612591,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"a4f3cee6-628d-4ea1-afef-271709541a6f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612591} {\"correlation_id\":\"a4f3cee6-628d-4ea1-afef-271709541a6f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612591,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a4f3cee6-628d-4ea1-afef-271709541a6f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612591,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"a4f3cee6-628d-4ea1-afef-271709541a6f\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612590,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"dfa94946-5871-4106-8e8f-5e7a418e64ae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612590} {\"correlation_id\":\"dfa94946-5871-4106-8e8f-5e7a418e64ae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612590,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"dfa94946-5871-4106-8e8f-5e7a418e64ae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612590,\"participants\":[{\"id\":999841,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999842,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null}]} {\"correlation_id\":\"dfa94946-5871-4106-8e8f-5e7a418e64ae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"dfa94946-5871-4106-8e8f-5e7a418e64ae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"dfa94946-5871-4106-8e8f-5e7a418e64ae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"dfa94946-5871-4106-8e8f-5e7a418e64ae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"dfa94946-5871-4106-8e8f-5e7a418e64ae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612590,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"dfa94946-5871-4106-8e8f-5e7a418e64ae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"dfa94946-5871-4106-8e8f-5e7a418e64ae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612590,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"dfa94946-5871-4106-8e8f-5e7a418e64ae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612590} {\"correlation_id\":\"dfa94946-5871-4106-8e8f-5e7a418e64ae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612590,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"dfa94946-5871-4106-8e8f-5e7a418e64ae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612590,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"dfa94946-5871-4106-8e8f-5e7a418e64ae\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612589,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"92666ef7-2d6e-4056-9d87-23df1bc694b1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612589} {\"correlation_id\":\"92666ef7-2d6e-4056-9d87-23df1bc694b1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612589,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"92666ef7-2d6e-4056-9d87-23df1bc694b1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612589,\"participants\":[{\"id\":999839,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999840,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null}]} {\"correlation_id\":\"92666ef7-2d6e-4056-9d87-23df1bc694b1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"92666ef7-2d6e-4056-9d87-23df1bc694b1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"92666ef7-2d6e-4056-9d87-23df1bc694b1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"92666ef7-2d6e-4056-9d87-23df1bc694b1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"92666ef7-2d6e-4056-9d87-23df1bc694b1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612589,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"92666ef7-2d6e-4056-9d87-23df1bc694b1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"92666ef7-2d6e-4056-9d87-23df1bc694b1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612589,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"92666ef7-2d6e-4056-9d87-23df1bc694b1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612589} {\"correlation_id\":\"92666ef7-2d6e-4056-9d87-23df1bc694b1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612589,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"92666ef7-2d6e-4056-9d87-23df1bc694b1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612589,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"92666ef7-2d6e-4056-9d87-23df1bc694b1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612588,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"7441c20c-f1d3-4310-a3a7-2c1aad9bbe25\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612588} {\"correlation_id\":\"7441c20c-f1d3-4310-a3a7-2c1aad9bbe25\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612588,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7441c20c-f1d3-4310-a3a7-2c1aad9bbe25\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612588,\"participants\":[{\"id\":999837,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999838,\"user_id\":206,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"7441c20c-f1d3-4310-a3a7-2c1aad9bbe25\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7441c20c-f1d3-4310-a3a7-2c1aad9bbe25\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7441c20c-f1d3-4310-a3a7-2c1aad9bbe25\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7441c20c-f1d3-4310-a3a7-2c1aad9bbe25\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"7441c20c-f1d3-4310-a3a7-2c1aad9bbe25\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"7441c20c-f1d3-4310-a3a7-2c1aad9bbe25\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612588,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"7441c20c-f1d3-4310-a3a7-2c1aad9bbe25\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612588,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"7441c20c-f1d3-4310-a3a7-2c1aad9bbe25\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612588} {\"correlation_id\":\"7441c20c-f1d3-4310-a3a7-2c1aad9bbe25\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612588,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7441c20c-f1d3-4310-a3a7-2c1aad9bbe25\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:30] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612588,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"7441c20c-f1d3-4310-a3a7-2c1aad9bbe25\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612587,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"b6283377-e461-4841-90a6-bd9b51c31e78\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612587} {\"correlation_id\":\"b6283377-e461-4841-90a6-bd9b51c31e78\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612587,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b6283377-e461-4841-90a6-bd9b51c31e78\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612587,\"participants\":[{\"id\":999835,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999836,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null}]} {\"correlation_id\":\"b6283377-e461-4841-90a6-bd9b51c31e78\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b6283377-e461-4841-90a6-bd9b51c31e78\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b6283377-e461-4841-90a6-bd9b51c31e78\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b6283377-e461-4841-90a6-bd9b51c31e78\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"b6283377-e461-4841-90a6-bd9b51c31e78\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612587,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"b6283377-e461-4841-90a6-bd9b51c31e78\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"b6283377-e461-4841-90a6-bd9b51c31e78\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612587,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"b6283377-e461-4841-90a6-bd9b51c31e78\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612587} {\"correlation_id\":\"b6283377-e461-4841-90a6-bd9b51c31e78\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612587,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b6283377-e461-4841-90a6-bd9b51c31e78\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612587,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"b6283377-e461-4841-90a6-bd9b51c31e78\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612586,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"d0ddb01c-2b21-4989-998a-fa52e7affced\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612586} {\"correlation_id\":\"d0ddb01c-2b21-4989-998a-fa52e7affced\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612586,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d0ddb01c-2b21-4989-998a-fa52e7affced\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612586,\"participants\":[{\"id\":999833,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999834,\"user_id\":206,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"d0ddb01c-2b21-4989-998a-fa52e7affced\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d0ddb01c-2b21-4989-998a-fa52e7affced\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d0ddb01c-2b21-4989-998a-fa52e7affced\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"d0ddb01c-2b21-4989-998a-fa52e7affced\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"d0ddb01c-2b21-4989-998a-fa52e7affced\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"d0ddb01c-2b21-4989-998a-fa52e7affced\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612586,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"d0ddb01c-2b21-4989-998a-fa52e7affced\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612586,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"d0ddb01c-2b21-4989-998a-fa52e7affced\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612586} {\"correlation_id\":\"d0ddb01c-2b21-4989-998a-fa52e7affced\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612586,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d0ddb01c-2b21-4989-998a-fa52e7affced\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612586,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"d0ddb01c-2b21-4989-998a-fa52e7affced\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.NOTICE: Monitoring start {\"correlation_id\":\"772cf24f-66f8-49c0-8ef5-e6c1d128fccb\",\"trace_id\":\"2d950f5a-3a35-4a8b-b33b-4d129409925b\"}\n[2026-05-11 11:09:31] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612585,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"cef11ffe-61af-425d-b899-399323237a47\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612585} {\"correlation_id\":\"cef11ffe-61af-425d-b899-399323237a47\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612585,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cef11ffe-61af-425d-b899-399323237a47\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.NOTICE: Monitoring end {\"correlation_id\":\"772cf24f-66f8-49c0-8ef5-e6c1d128fccb\",\"trace_id\":\"2d950f5a-3a35-4a8b-b33b-4d129409925b\"}\n[2026-05-11 11:09:31] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612585,\"participants\":[{\"id\":999831,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999832,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null}]} {\"correlation_id\":\"cef11ffe-61af-425d-b899-399323237a47\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cef11ffe-61af-425d-b899-399323237a47\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cef11ffe-61af-425d-b899-399323237a47\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cef11ffe-61af-425d-b899-399323237a47\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"cef11ffe-61af-425d-b899-399323237a47\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612585,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"cef11ffe-61af-425d-b899-399323237a47\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"cef11ffe-61af-425d-b899-399323237a47\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612585,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"cef11ffe-61af-425d-b899-399323237a47\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612585} {\"correlation_id\":\"cef11ffe-61af-425d-b899-399323237a47\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612585,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cef11ffe-61af-425d-b899-399323237a47\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612585,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"cef11ffe-61af-425d-b899-399323237a47\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612584,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"2aa83935-5a46-4a3d-98d7-acfcf3f3f6cb\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612584} {\"correlation_id\":\"2aa83935-5a46-4a3d-98d7-acfcf3f3f6cb\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612584,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2aa83935-5a46-4a3d-98d7-acfcf3f3f6cb\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612584,\"participants\":[{\"id\":999829,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999830,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null}]} {\"correlation_id\":\"2aa83935-5a46-4a3d-98d7-acfcf3f3f6cb\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2aa83935-5a46-4a3d-98d7-acfcf3f3f6cb\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2aa83935-5a46-4a3d-98d7-acfcf3f3f6cb\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"2aa83935-5a46-4a3d-98d7-acfcf3f3f6cb\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"2aa83935-5a46-4a3d-98d7-acfcf3f3f6cb\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612584,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"2aa83935-5a46-4a3d-98d7-acfcf3f3f6cb\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"2aa83935-5a46-4a3d-98d7-acfcf3f3f6cb\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612584,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"2aa83935-5a46-4a3d-98d7-acfcf3f3f6cb\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612584} {\"correlation_id\":\"2aa83935-5a46-4a3d-98d7-acfcf3f3f6cb\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612584,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2aa83935-5a46-4a3d-98d7-acfcf3f3f6cb\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612584,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"2aa83935-5a46-4a3d-98d7-acfcf3f3f6cb\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612583,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"04dd4d55-bdb2-4f42-9fbd-8a132707b475\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612583} {\"correlation_id\":\"04dd4d55-bdb2-4f42-9fbd-8a132707b475\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612583,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"04dd4d55-bdb2-4f42-9fbd-8a132707b475\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612583,\"participants\":[{\"id\":999827,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999828,\"user_id\":206,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"04dd4d55-bdb2-4f42-9fbd-8a132707b475\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"04dd4d55-bdb2-4f42-9fbd-8a132707b475\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"04dd4d55-bdb2-4f42-9fbd-8a132707b475\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"04dd4d55-bdb2-4f42-9fbd-8a132707b475\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"04dd4d55-bdb2-4f42-9fbd-8a132707b475\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"04dd4d55-bdb2-4f42-9fbd-8a132707b475\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612583,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"04dd4d55-bdb2-4f42-9fbd-8a132707b475\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612583,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"04dd4d55-bdb2-4f42-9fbd-8a132707b475\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612583} {\"correlation_id\":\"04dd4d55-bdb2-4f42-9fbd-8a132707b475\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612583,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"04dd4d55-bdb2-4f42-9fbd-8a132707b475\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:31] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612583,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"04dd4d55-bdb2-4f42-9fbd-8a132707b475\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612582,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"58e7116b-76f4-4698-a629-ff1eb613d93e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612582} {\"correlation_id\":\"58e7116b-76f4-4698-a629-ff1eb613d93e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612582,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"58e7116b-76f4-4698-a629-ff1eb613d93e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612582,\"participants\":[{\"id\":999825,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999826,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null}]} {\"correlation_id\":\"58e7116b-76f4-4698-a629-ff1eb613d93e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"58e7116b-76f4-4698-a629-ff1eb613d93e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"58e7116b-76f4-4698-a629-ff1eb613d93e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"58e7116b-76f4-4698-a629-ff1eb613d93e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"58e7116b-76f4-4698-a629-ff1eb613d93e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612582,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"58e7116b-76f4-4698-a629-ff1eb613d93e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"58e7116b-76f4-4698-a629-ff1eb613d93e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612582,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"58e7116b-76f4-4698-a629-ff1eb613d93e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612582} {\"correlation_id\":\"58e7116b-76f4-4698-a629-ff1eb613d93e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612582,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"58e7116b-76f4-4698-a629-ff1eb613d93e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612582,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"58e7116b-76f4-4698-a629-ff1eb613d93e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612581,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"b1cdf1eb-a77f-4062-bc7a-52e75ec005f1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612581} {\"correlation_id\":\"b1cdf1eb-a77f-4062-bc7a-52e75ec005f1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612581,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b1cdf1eb-a77f-4062-bc7a-52e75ec005f1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612581,\"participants\":[{\"id\":999823,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999824,\"user_id\":206,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"b1cdf1eb-a77f-4062-bc7a-52e75ec005f1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b1cdf1eb-a77f-4062-bc7a-52e75ec005f1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b1cdf1eb-a77f-4062-bc7a-52e75ec005f1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b1cdf1eb-a77f-4062-bc7a-52e75ec005f1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"b1cdf1eb-a77f-4062-bc7a-52e75ec005f1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"b1cdf1eb-a77f-4062-bc7a-52e75ec005f1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612581,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"b1cdf1eb-a77f-4062-bc7a-52e75ec005f1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612581,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"b1cdf1eb-a77f-4062-bc7a-52e75ec005f1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612581} {\"correlation_id\":\"b1cdf1eb-a77f-4062-bc7a-52e75ec005f1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612581,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b1cdf1eb-a77f-4062-bc7a-52e75ec005f1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612581,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"b1cdf1eb-a77f-4062-bc7a-52e75ec005f1\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612565,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"4531fd00-7875-4334-b3c2-407d31ec1255\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612565} {\"correlation_id\":\"4531fd00-7875-4334-b3c2-407d31ec1255\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612565,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4531fd00-7875-4334-b3c2-407d31ec1255\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612565,\"participants\":[{\"id\":999789,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999790,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null}]} {\"correlation_id\":\"4531fd00-7875-4334-b3c2-407d31ec1255\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4531fd00-7875-4334-b3c2-407d31ec1255\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4531fd00-7875-4334-b3c2-407d31ec1255\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"4531fd00-7875-4334-b3c2-407d31ec1255\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"4531fd00-7875-4334-b3c2-407d31ec1255\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612565,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"4531fd00-7875-4334-b3c2-407d31ec1255\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"4531fd00-7875-4334-b3c2-407d31ec1255\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:32] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612565,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"4531fd00-7875-4334-b3c2-407d31ec1255\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612565} {\"correlation_id\":\"4531fd00-7875-4334-b3c2-407d31ec1255\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612565,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4531fd00-7875-4334-b3c2-407d31ec1255\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612565,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"4531fd00-7875-4334-b3c2-407d31ec1255\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612563,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34}} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612563} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612563,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612563,\"participants\":[{\"id\":999784,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999785,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null}]} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612563,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":206} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":244,\"contact_id\":4487} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":350} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612563,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612563} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612563,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612563,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34} {\"correlation_id\":\"b2ea69fc-9176-494f-b933-f64c1de72377\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612562,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"correlation_id\":\"096bc408-0a3f-43ef-9cf6-f9007ee7315c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612562} {\"correlation_id\":\"096bc408-0a3f-43ef-9cf6-f9007ee7315c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612562,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"096bc408-0a3f-43ef-9cf6-f9007ee7315c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612562,\"participants\":[{\"id\":999782,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":999783,\"user_id\":206,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"096bc408-0a3f-43ef-9cf6-f9007ee7315c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"096bc408-0a3f-43ef-9cf6-f9007ee7315c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"096bc408-0a3f-43ef-9cf6-f9007ee7315c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"096bc408-0a3f-43ef-9cf6-f9007ee7315c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"096bc408-0a3f-43ef-9cf6-f9007ee7315c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:33] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"447782589921@txt.staging.jiminny.com\"} {\"correlation_id\":\"096bc408-0a3f-43ef-9cf6-f9007ee7315c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:34] local.INFO: [Hubspot] Failed to fetch contact {\"email\":\"447782589921@txt.staging.jiminny.com\",\"reason\":\"[404] Client error: `GET https://api.hubapi.com/crm/v3/objects/contacts/447782589921%40txt.staging.jiminny.com?properties=email%2Cfirstname%2Clastname%2Ccountry%2Cphone%2Cmobilephone%2Cjobtitle%2Chubspot_owner_id%2Cassociatedcompanyid%2Cphoto&archived=0&idProperty=email` resulted in a `404 Not Found` response\"} {\"correlation_id\":\"096bc408-0a3f-43ef-9cf6-f9007ee7315c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:34] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {\"identifier_type\":\"email\",\"identifier\":\"447782589921@txt.staging.jiminny.com\"} {\"correlation_id\":\"096bc408-0a3f-43ef-9cf6-f9007ee7315c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:34] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":10,\"delay\":14} {\"correlation_id\":\"096bc408-0a3f-43ef-9cf6-f9007ee7315c\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:34] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612561,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"correlation_id\":\"cded6bdb-0e7c-4baa-b280-5798e81b236a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:34] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612561} {\"correlation_id\":\"cded6bdb-0e7c-4baa-b280-5798e81b236a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:34] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612561,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cded6bdb-0e7c-4baa-b280-5798e81b236a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:34] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612561,\"participants\":[{\"id\":999780,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999781,\"user_id\":null,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"cded6bdb-0e7c-4baa-b280-5798e81b236a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:34] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cded6bdb-0e7c-4baa-b280-5798e81b236a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:34] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cded6bdb-0e7c-4baa-b280-5798e81b236a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:34] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cded6bdb-0e7c-4baa-b280-5798e81b236a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:34] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"cded6bdb-0e7c-4baa-b280-5798e81b236a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:34] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612561,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"cded6bdb-0e7c-4baa-b280-5798e81b236a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:34] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"447700174614.447782589921.OeREojLVnk@txt.staging.jiminny.com\"} {\"correlation_id\":\"cded6bdb-0e7c-4baa-b280-5798e81b236a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [Hubspot] Failed to fetch contact {\"email\":\"447700174614.447782589921.OeREojLVnk@txt.staging.jiminny.com\",\"reason\":\"[404] Client error: `GET https://api.hubapi.com/crm/v3/objects/contacts/447700174614.447782589921.OeREojLVnk%40txt.staging.jiminny.com?properties=email%2Cfirstname%2Clastname%2Ccountry%2Cphone%2Cmobilephone%2Cjobtitle%2Chubspot_owner_id%2Cassociatedcompanyid%2Cphoto&archived=0&idProperty=email` resulted in a `404 Not Found` response\"} {\"correlation_id\":\"cded6bdb-0e7c-4baa-b280-5798e81b236a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {\"identifier_type\":\"email\",\"identifier\":\"447700174614.447782589921.OeREojLVnk@txt.staging.jiminny.com\"} {\"correlation_id\":\"cded6bdb-0e7c-4baa-b280-5798e81b236a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":10,\"delay\":10} {\"correlation_id\":\"cded6bdb-0e7c-4baa-b280-5798e81b236a\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612560,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"correlation_id\":\"53ef5599-df42-4f3d-90a1-8f89c19435e4\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612560} {\"correlation_id\":\"53ef5599-df42-4f3d-90a1-8f89c19435e4\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612560,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"53ef5599-df42-4f3d-90a1-8f89c19435e4\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612560,\"participants\":[{\"id\":999778,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":999779,\"user_id\":206,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"53ef5599-df42-4f3d-90a1-8f89c19435e4\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"53ef5599-df42-4f3d-90a1-8f89c19435e4\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"53ef5599-df42-4f3d-90a1-8f89c19435e4\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"53ef5599-df42-4f3d-90a1-8f89c19435e4\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"53ef5599-df42-4f3d-90a1-8f89c19435e4\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"447782589921@txt.staging.jiminny.com\"} {\"correlation_id\":\"53ef5599-df42-4f3d-90a1-8f89c19435e4\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"447782589921@txt.staging.jiminny.com\"} {\"correlation_id\":\"53ef5599-df42-4f3d-90a1-8f89c19435e4\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":10,\"delay\":12} {\"correlation_id\":\"53ef5599-df42-4f3d-90a1-8f89c19435e4\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612559,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34}} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612559} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612559,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612559,\"participants\":[{\"id\":999776,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999777,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612559,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":69,\"contact_id\":97,\"owner_id\":206} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":69,\"contact_id\":97} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":69,\"contact_id\":97,\"opportunity_id\":5011} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":2.07,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"6d49ffdc-2ed7-4eae-a1ee-e25ca95bbea8\",\"trace_id\":\"906573b5-005c-4820-8a32-3b0703ea86dd\"}\n[2026-05-11 11:09:35] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612559,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612559} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612559,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612559,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34} {\"correlation_id\":\"c3d3b2ae-6863-4f04-94a5-f09eabb50d2e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612558,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34}} {\"correlation_id\":\"34a7b1c6-be3b-4790-a04c-0311e25dadc8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612558} {\"correlation_id\":\"34a7b1c6-be3b-4790-a04c-0311e25dadc8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612558,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"34a7b1c6-be3b-4790-a04c-0311e25dadc8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612558,\"participants\":[{\"id\":999774,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999775,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"34a7b1c6-be3b-4790-a04c-0311e25dadc8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"34a7b1c6-be3b-4790-a04c-0311e25dadc8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"34a7b1c6-be3b-4790-a04c-0311e25dadc8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"34a7b1c6-be3b-4790-a04c-0311e25dadc8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"34a7b1c6-be3b-4790-a04c-0311e25dadc8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612558,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"34a7b1c6-be3b-4790-a04c-0311e25dadc8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"34a7b1c6-be3b-4790-a04c-0311e25dadc8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612558,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"34a7b1c6-be3b-4790-a04c-0311e25dadc8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612558} {\"correlation_id\":\"34a7b1c6-be3b-4790-a04c-0311e25dadc8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612558,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"34a7b1c6-be3b-4790-a04c-0311e25dadc8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612558,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34} {\"correlation_id\":\"34a7b1c6-be3b-4790-a04c-0311e25dadc8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:35] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612557,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34}} {\"correlation_id\":\"26d4d3d0-ebf8-44ad-a48f-24728e5539e0\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612557} {\"correlation_id\":\"26d4d3d0-ebf8-44ad-a48f-24728e5539e0\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612557,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"26d4d3d0-ebf8-44ad-a48f-24728e5539e0\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612557,\"participants\":[{\"id\":999772,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999773,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"26d4d3d0-ebf8-44ad-a48f-24728e5539e0\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"26d4d3d0-ebf8-44ad-a48f-24728e5539e0\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"26d4d3d0-ebf8-44ad-a48f-24728e5539e0\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"26d4d3d0-ebf8-44ad-a48f-24728e5539e0\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"26d4d3d0-ebf8-44ad-a48f-24728e5539e0\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612557,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"26d4d3d0-ebf8-44ad-a48f-24728e5539e0\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"26d4d3d0-ebf8-44ad-a48f-24728e5539e0\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612557,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"26d4d3d0-ebf8-44ad-a48f-24728e5539e0\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612557} {\"correlation_id\":\"26d4d3d0-ebf8-44ad-a48f-24728e5539e0\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612557,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"26d4d3d0-ebf8-44ad-a48f-24728e5539e0\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612557,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34} {\"correlation_id\":\"26d4d3d0-ebf8-44ad-a48f-24728e5539e0\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612556,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34}} {\"correlation_id\":\"406b7ad3-26d6-4b1b-9ad7-fff68622b149\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612556} {\"correlation_id\":\"406b7ad3-26d6-4b1b-9ad7-fff68622b149\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612556,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"406b7ad3-26d6-4b1b-9ad7-fff68622b149\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612556,\"participants\":[{\"id\":999770,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999771,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"406b7ad3-26d6-4b1b-9ad7-fff68622b149\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"406b7ad3-26d6-4b1b-9ad7-fff68622b149\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"406b7ad3-26d6-4b1b-9ad7-fff68622b149\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"406b7ad3-26d6-4b1b-9ad7-fff68622b149\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"406b7ad3-26d6-4b1b-9ad7-fff68622b149\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612556,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"406b7ad3-26d6-4b1b-9ad7-fff68622b149\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"406b7ad3-26d6-4b1b-9ad7-fff68622b149\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612556,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"406b7ad3-26d6-4b1b-9ad7-fff68622b149\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612556} {\"correlation_id\":\"406b7ad3-26d6-4b1b-9ad7-fff68622b149\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612556,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"406b7ad3-26d6-4b1b-9ad7-fff68622b149\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612556,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34} {\"correlation_id\":\"406b7ad3-26d6-4b1b-9ad7-fff68622b149\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612555,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34}} {\"correlation_id\":\"c15b7703-f17b-48e7-bf38-122448d79345\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612555} {\"correlation_id\":\"c15b7703-f17b-48e7-bf38-122448d79345\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612555,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"c15b7703-f17b-48e7-bf38-122448d79345\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612555,\"participants\":[{\"id\":999768,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999769,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"c15b7703-f17b-48e7-bf38-122448d79345\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"c15b7703-f17b-48e7-bf38-122448d79345\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"c15b7703-f17b-48e7-bf38-122448d79345\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"c15b7703-f17b-48e7-bf38-122448d79345\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"c15b7703-f17b-48e7-bf38-122448d79345\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612555,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"c15b7703-f17b-48e7-bf38-122448d79345\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"c15b7703-f17b-48e7-bf38-122448d79345\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612555,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"c15b7703-f17b-48e7-bf38-122448d79345\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612555} {\"correlation_id\":\"c15b7703-f17b-48e7-bf38-122448d79345\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612555,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"c15b7703-f17b-48e7-bf38-122448d79345\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612555,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34} {\"correlation_id\":\"c15b7703-f17b-48e7-bf38-122448d79345\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612554,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34}} {\"correlation_id\":\"c9cce71b-d96d-4117-b9fb-bb9672ae7c2b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612554} {\"correlation_id\":\"c9cce71b-d96d-4117-b9fb-bb9672ae7c2b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612554,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"c9cce71b-d96d-4117-b9fb-bb9672ae7c2b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612554,\"participants\":[{\"id\":999766,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999767,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"c9cce71b-d96d-4117-b9fb-bb9672ae7c2b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"c9cce71b-d96d-4117-b9fb-bb9672ae7c2b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"c9cce71b-d96d-4117-b9fb-bb9672ae7c2b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"c9cce71b-d96d-4117-b9fb-bb9672ae7c2b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"c9cce71b-d96d-4117-b9fb-bb9672ae7c2b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612554,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"c9cce71b-d96d-4117-b9fb-bb9672ae7c2b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"c9cce71b-d96d-4117-b9fb-bb9672ae7c2b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612554,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"c9cce71b-d96d-4117-b9fb-bb9672ae7c2b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612554} {\"correlation_id\":\"c9cce71b-d96d-4117-b9fb-bb9672ae7c2b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612554,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"c9cce71b-d96d-4117-b9fb-bb9672ae7c2b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612554,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34} {\"correlation_id\":\"c9cce71b-d96d-4117-b9fb-bb9672ae7c2b\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612553,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34}} {\"correlation_id\":\"ffd2857e-be14-4ab1-8533-93b20116db02\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612553} {\"correlation_id\":\"ffd2857e-be14-4ab1-8533-93b20116db02\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612553,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ffd2857e-be14-4ab1-8533-93b20116db02\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612553,\"participants\":[{\"id\":999764,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999765,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"ffd2857e-be14-4ab1-8533-93b20116db02\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ffd2857e-be14-4ab1-8533-93b20116db02\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ffd2857e-be14-4ab1-8533-93b20116db02\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ffd2857e-be14-4ab1-8533-93b20116db02\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ffd2857e-be14-4ab1-8533-93b20116db02\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612553,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"ffd2857e-be14-4ab1-8533-93b20116db02\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"ffd2857e-be14-4ab1-8533-93b20116db02\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612553,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"ffd2857e-be14-4ab1-8533-93b20116db02\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612553} {\"correlation_id\":\"ffd2857e-be14-4ab1-8533-93b20116db02\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612553,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ffd2857e-be14-4ab1-8533-93b20116db02\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612553,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34} {\"correlation_id\":\"ffd2857e-be14-4ab1-8533-93b20116db02\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612552,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34}} {\"correlation_id\":\"7942c5ee-3b2d-4f76-8728-d5343cd7b02e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612552} {\"correlation_id\":\"7942c5ee-3b2d-4f76-8728-d5343cd7b02e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612552,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7942c5ee-3b2d-4f76-8728-d5343cd7b02e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612552,\"participants\":[{\"id\":999762,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999763,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"7942c5ee-3b2d-4f76-8728-d5343cd7b02e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7942c5ee-3b2d-4f76-8728-d5343cd7b02e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7942c5ee-3b2d-4f76-8728-d5343cd7b02e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7942c5ee-3b2d-4f76-8728-d5343cd7b02e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"7942c5ee-3b2d-4f76-8728-d5343cd7b02e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612552,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"7942c5ee-3b2d-4f76-8728-d5343cd7b02e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"7942c5ee-3b2d-4f76-8728-d5343cd7b02e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612552,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"7942c5ee-3b2d-4f76-8728-d5343cd7b02e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612552} {\"correlation_id\":\"7942c5ee-3b2d-4f76-8728-d5343cd7b02e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612552,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7942c5ee-3b2d-4f76-8728-d5343cd7b02e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612552,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34} {\"correlation_id\":\"7942c5ee-3b2d-4f76-8728-d5343cd7b02e\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612551,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34}} {\"correlation_id\":\"8068bb0d-ab6d-48ee-abe2-d6cd116aba26\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612551} {\"correlation_id\":\"8068bb0d-ab6d-48ee-abe2-d6cd116aba26\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612551,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8068bb0d-ab6d-48ee-abe2-d6cd116aba26\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612551,\"participants\":[{\"id\":999760,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999761,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"8068bb0d-ab6d-48ee-abe2-d6cd116aba26\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8068bb0d-ab6d-48ee-abe2-d6cd116aba26\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8068bb0d-ab6d-48ee-abe2-d6cd116aba26\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"8068bb0d-ab6d-48ee-abe2-d6cd116aba26\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"8068bb0d-ab6d-48ee-abe2-d6cd116aba26\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612551,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"8068bb0d-ab6d-48ee-abe2-d6cd116aba26\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"8068bb0d-ab6d-48ee-abe2-d6cd116aba26\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612551,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"8068bb0d-ab6d-48ee-abe2-d6cd116aba26\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612551} {\"correlation_id\":\"8068bb0d-ab6d-48ee-abe2-d6cd116aba26\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612551,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8068bb0d-ab6d-48ee-abe2-d6cd116aba26\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:36] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612551,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34} {\"correlation_id\":\"8068bb0d-ab6d-48ee-abe2-d6cd116aba26\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:37] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612550,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34}} {\"correlation_id\":\"36bdbff9-cfb6-43af-b7c4-f2caafa8e794\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:37] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612550} {\"correlation_id\":\"36bdbff9-cfb6-43af-b7c4-f2caafa8e794\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:37] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612550,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"36bdbff9-cfb6-43af-b7c4-f2caafa8e794\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:37] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612550,\"participants\":[{\"id\":999758,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999759,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"36bdbff9-cfb6-43af-b7c4-f2caafa8e794\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:37] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"36bdbff9-cfb6-43af-b7c4-f2caafa8e794\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:37] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"36bdbff9-cfb6-43af-b7c4-f2caafa8e794\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:37] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"36bdbff9-cfb6-43af-b7c4-f2caafa8e794\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:37] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"36bdbff9-cfb6-43af-b7c4-f2caafa8e794\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:37] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612550,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"36bdbff9-cfb6-43af-b7c4-f2caafa8e794\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:37] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"36bdbff9-cfb6-43af-b7c4-f2caafa8e794\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:37] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612550,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"36bdbff9-cfb6-43af-b7c4-f2caafa8e794\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:38] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612550} {\"correlation_id\":\"36bdbff9-cfb6-43af-b7c4-f2caafa8e794\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:38] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612550,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"36bdbff9-cfb6-43af-b7c4-f2caafa8e794\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:38] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612550,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34} {\"correlation_id\":\"36bdbff9-cfb6-43af-b7c4-f2caafa8e794\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:38] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612549,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34}} {\"correlation_id\":\"c2ff3c6c-7380-4c1c-a1f5-50044a473ac8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:38] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612549} {\"correlation_id\":\"c2ff3c6c-7380-4c1c-a1f5-50044a473ac8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:38] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612549,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"c2ff3c6c-7380-4c1c-a1f5-50044a473ac8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:38] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612549,\"participants\":[{\"id\":999756,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999757,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"c2ff3c6c-7380-4c1c-a1f5-50044a473ac8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:39] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"c2ff3c6c-7380-4c1c-a1f5-50044a473ac8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:39] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"c2ff3c6c-7380-4c1c-a1f5-50044a473ac8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:39] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"c2ff3c6c-7380-4c1c-a1f5-50044a473ac8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"c2ff3c6c-7380-4c1c-a1f5-50044a473ac8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:39] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612549,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"c2ff3c6c-7380-4c1c-a1f5-50044a473ac8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:39] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"c2ff3c6c-7380-4c1c-a1f5-50044a473ac8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:39] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612549,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"c2ff3c6c-7380-4c1c-a1f5-50044a473ac8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:39] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612549} {\"correlation_id\":\"c2ff3c6c-7380-4c1c-a1f5-50044a473ac8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612549,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"c2ff3c6c-7380-4c1c-a1f5-50044a473ac8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:39] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612549,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34} {\"correlation_id\":\"c2ff3c6c-7380-4c1c-a1f5-50044a473ac8\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:40] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612365,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"a9faea34-163e-4d2a-8007-c903951e3b79\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612365} {\"correlation_id\":\"a9faea34-163e-4d2a-8007-c903951e3b79\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612365,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a9faea34-163e-4d2a-8007-c903951e3b79\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:40] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612365,\"participants\":[{\"id\":999563,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999564,\"user_id\":206,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"a9faea34-163e-4d2a-8007-c903951e3b79\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a9faea34-163e-4d2a-8007-c903951e3b79\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a9faea34-163e-4d2a-8007-c903951e3b79\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"a9faea34-163e-4d2a-8007-c903951e3b79\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"a9faea34-163e-4d2a-8007-c903951e3b79\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"a9faea34-163e-4d2a-8007-c903951e3b79\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:40] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612365,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"a9faea34-163e-4d2a-8007-c903951e3b79\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612365,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"a9faea34-163e-4d2a-8007-c903951e3b79\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612365} {\"correlation_id\":\"a9faea34-163e-4d2a-8007-c903951e3b79\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612365,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a9faea34-163e-4d2a-8007-c903951e3b79\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}\n[2026-05-11 11:09:41] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612365,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"a9faea34-163e-4d2a-8007-c903951e3b79\",\"trace_id\":\"7954a095-b2fb-4c22-bbb6-0c5baa0c7176\"}","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Project","depth":3,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Project","depth":3,"bounds":{"left":0.011968086,"top":0.047885075,"width":0.024268618,"height":0.024740623},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
8682107944457975172
|
-2556523036834395804
|
click
|
accessibility
|
NULL
|
Project: faVsco.js, menu
JY-20725-handle-HS-search Project: faVsco.js, menu
JY-20725-handle-HS-search-rate-limit, menu
Start Listening for PHP Debug Connections
HandleHubspotRateLimitTest
Run 'HandleHubspotRateLimitTest'
Debug 'HandleHubspotRateLimitTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
1
2
67
3
Previous Highlighted Error
Next Highlighted Error
<?php
declare(strict_types=1);
namespace Jiminny\Services\Crm\Hubspot;
use HubSpot\Client\Crm\Deals\ApiException as DealApiException;
use HubSpot\Client\Crm\Contacts\ApiException as ContactApiException;
use HubSpot\Client\Crm\Companies\ApiException as CompanyApiException;
use HubSpot\Client\Crm\Contacts\Model\SimplePublicObjectWithAssociations as ContactsWithAssociations;
use HubSpot\Client\Crm\Companies\Model\SimplePublicObjectWithAssociations as CompaniesWithAssociations;
use HubSpot\Client\Crm\Deals\Model\SimplePublicObjectWithAssociations as DealWithAssociations;
use HubSpot\Client\Crm\Objects\Model\SimplePublicObjectInput;
use HubSpot\Client\Crm\Objects\Model\SimplePublicObjectWithAssociations as ObjectWithAssociations;
use HubSpot\Client\Crm\Pipelines\Model\Error;
use HubSpot\Client\Crm\Pipelines\Model\PipelineStage;
use HubSpot\Client\Crm\Properties\Model\Property;
use HubSpot\Discovery\Discovery;
use Jiminny\Exceptions\CrmException;
use Jiminny\Exceptions\RateLimitException;
use Jiminny\Exceptions\SocialAccountTokenInvalidException;
use Jiminny\Jobs\Crm\NoteObject;
use Jiminny\Models\Crm\Field;
use Jiminny\Services\Crm\BaseClient;
use Jiminny\Services\Crm\Hubspot\DTO\Response\Owner;
use Jiminny\Services\SocialAccountService;
use SevenShores\Hubspot\Exceptions\BadRequest;
use SevenShores\Hubspot\Exceptions\HubspotException;
use SevenShores\Hubspot\Factory;
use SevenShores\Hubspot\Http\Response;
use Jiminny\Services\Crm\Hubspot\Pagination\HubspotPaginationService;
use Illuminate\Support\Facades\Redis;
use Throwable;
/**
* @phpstan-type CrmFieldOption array{id:string, label:string, value?:string}
*/
class Client extends BaseClient implements HubspotClientInterface
{
public const string MIN_API_VERSION = '2';
public const string BASE_URL = '[URL_WITH_CREDENTIALS] T
* @param callable(): T $apiCall
* @return T
*
* @throws RateLimitException
*/
private function executeRequest(callable $apiCall)
{
$cacheKey = $this->getRateLimitCacheKey();
$cachedRetryAfter = Redis::get($cacheKey);
if (is_string($cachedRetryAfter) && is_numeric($cachedRetryAfter)) {
throw new RateLimitException(
'Hubspot rate limit (cached circuit-breaker)',
(int) $cachedRetryAfter,
);
}
try {
return $apiCall();
} catch (Throwable $e) {
if ($this->isHubspotRateLimit($e)) {
$retryAfter = $this->parseRetryAfter($e);
Redis::setex($cacheKey, $retryAfter, (string) $retryAfter);
$this->log->warning('[Hubspot] Received 429 from API', [
'team_id' => $this->config->team_id,
'config_id' => $this->config->getId(),
'retry_after' => $retryAfter,
'reason' => $e->getMessage(),
]);
throw new RateLimitException('Hubspot returned 429', $retryAfter, $e);
}
throw $e;
}
}
private function getRateLimitCacheKey(): string
{
return sprintf('hubspot:ratelimit:portal:%d', $this->config->getId());
}
public function isHubspotRateLimit(Throwable $e): bool
{
if ($e instanceof BadRequest
|| $e instanceof DealApiException
|| $e instanceof ContactApiException
|| $e instanceof CompanyApiException
|| $e instanceof \GuzzleHttp\Exception\RequestException
) {
return (int) $e->getCode() === 429;
}
return false;
}
public function parseRetryAfter(Throwable $e): int
{
if (method_exists($e, 'getResponseHeaders')) {
$headers = $e->getResponseHeaders() ?: [];
$value = $headers['Retry-After'] ?? $headers['retry-after'] ?? null;
if (is_array($value)) {
$value = $value[0] ?? null;
}
if (is_numeric($value)) {
return (int) $value;
}
}
$message = strtolower($e->getMessage());
if (str_contains($message, 'daily')) {
return 600;
}
if (str_contains($message, 'ten secondly')) {
return 10;
}
if (str_contains($message, 'secondly')) {
return 1;
}
$this->log->warning('[Hubspot] No retry-after header or known message, using default', [
'exception_class' => get_class($e),
'message' => $message,
]);
return 10;
}
public function parseMessage(Throwable $e): string
{
if (! method_exists($e, 'getResponseBody')) {
return '';
}
$body = $e->getResponseBody();
if (is_string($body)) {
$body = json_decode($body, true) ?? [];
}
if (! is_array($body)) {
return '';
}
return (string) ($body['message'] ?? '');
}
public function getMinimumApiVersion(): string
{
return self::MIN_API_VERSION;
}
public function getInstance(): Factory
{
return new Factory([
'key' => $this->accessToken,
'oauth2' => true,
'base_url' => $this->baseUrl,
]);
}
public function getNewInstance(): Discovery
{
return \HubSpot\Factory::createWithAccessToken($this->accessToken);
}
/**
* Secondly and daily limits for Hubspot API
*
* Product Tier: Free & Starter | Professional & Enterprise | API add-on (any tier)
* Burst: 100/10 seconds | 150/10 seconds | 200/10 seconds
* Daily: 250,000 | 500,000 | 1,000,000
*
* Official documentation states: The search endpoints are rate limited to five requests per second.
* Since with 5 RPS were still hitting secondly rate limits we lowered it to 4
*/
public function getPaginatedData(array $payload, string $type, int $offset = 0): array
{
$total = 0;
$lastId = null;
$rows = [];
foreach ($this->getPaginatedDataGenerator($payload, $type, $offset, $total, $lastId) as $row) {
$rows[] = $row;
}
return ['results' => $rows, 'total' => $total, 'last_record' => $lastId];
}
/**
* @throws HubspotException
* @throws SocialAccountTokenInvalidException
* @throws BadRequest
*/
public function getPaginatedDataGenerator(
array $payload,
string $type,
int $offset = 0,
int &$total = 0,
?string &$lastRecordId = null
): \Generator {
return $this->paginationService->getPaginatedDataGenerator(
$this,
$payload,
$type,
$offset,
$total,
$lastRecordId
);
}
/**
* Execute a search request against HubSpot CRM objects with rate limiting.
*
* @param string $objectType The object type ('deals', 'companies', 'contacts', 'calls')
* @param array<string, mixed> $payload The search payload with filters, sorts, properties, etc.
* @return array The search response with 'results', 'total', 'paging' keys
* @throws RateLimitException When rate limit is hit
* @throws HubspotException On API errors
*/
public function search(string $objectType, array $payload): array
{
$endpoint = self::BASE_URL . "/crm/v3/objects/{$objectType}/search";
return $this->executeRequest(function () use ($endpoint, $payload) {
$response = $this->getInstance()->getClient()->request('POST', $endpoint, ['json' => $payload]);
return $response->toArray();
});
}
/**
* @throws DealApiException
* @throws CrmException
*/
public function getOpportunityById(string $crmId, array $fields): array
{
try {
$deal = $this->getNewInstance()->crm()->deals()->basicApi()->getById(
$crmId,
implode(',', $fields),
'companies,contacts'
);
} catch (DealApiException $e) {
$this->log->info('[Hubspot] Failed to fetch opportunity', [
'crm_id' => $crmId,
'reason' => $e->getMessage(),
]);
throw $e;
}
if (! $deal instanceof DealWithAssociations) {
throw new CrmException('Deal not found');
}
return [
'id' => $deal->getId(),
'properties' => $deal->getProperties(),
'associations' => $deal->getAssociations(),
];
}
/**
* Generic batch read method for HubSpot objects
*
* @param string $objectType The object type ('deals', 'companies', 'contacts')
* @param array<string> $crmIds Array of HubSpot object IDs (max 100)
* @param array<string> $fields Array of property names to fetch
*
* @return array<string, array> Array keyed by CRM ID with object data
*/
private function batchReadObjects(string $objectType, array $crmIds, array $fields): array
{
if (empty($crmIds)) {
return [];
}
$this->validateBatchSize($objectType, $crmIds);
$this->ensureValidToken();
try {
$batchConfig = $this->createBatchConfiguration($objectType);
$batchReadRequest = $this->prepareBatchRequest($batchConfig, $crmIds, $fields);
$response = $batchConfig['api']->read($batchReadRequest);
$this->validateApiResponse($response, $objectType);
$results = $this->processApiResults($response);
$this->logBatchResults($objectType, $crmIds, $results);
return $results;
} catch (\Throwable $e) {
$this->handleBatchError($e, $objectType, $crmIds);
}
}
private function validateBatchSize(string $objectType, array $crmIds): void
{
if (count($crmIds) > 100) {
throw new \InvalidArgumentException("Batch size cannot exceed 100 {$objectType}");
}
}
private function createBatchConfiguration(string $objectType): array
{
$configurations = [
'deals' => [
'batchReadRequest' => new \HubSpot\Client\Crm\Deals\Model\BatchReadInputSimplePublicObjectId(),
'inputClass' => \HubSpot\Client\Crm\Deals\Model\SimplePublicObjectId::class,
'api' => $this->getNewInstance()->crm()->deals()->batchApi(),
],
'companies' => [
'batchReadRequest' => new \HubSpot\Client\Crm\Companies\Model\BatchReadInputSimplePublicObjectId(),
'inputClass' => \HubSpot\Client\Crm\Companies\Model\SimplePublicObjectId::class,
'api' => $this->getNewInstance()->crm()->companies()->batchApi(),
],
'contacts' => [
'batchReadRequest' => new \HubSpot\Client\Crm\Contacts\Model\BatchReadInputSimplePublicObjectId(),
'inputClass' => \HubSpot\Client\Crm\Contacts\Model\SimplePublicObjectId::class,
'api' => $this->getNewInstance()->crm()->contacts()->batchApi(),
],
];
if (! isset($configurations[$objectType])) {
throw new \InvalidArgumentException("Unsupported object type: {$objectType}");
}
return $configurations[$objectType];
}
private function prepareBatchRequest(array $batchConfig, array $crmIds, array $fields): object
{
$batchReadRequest = $batchConfig['batchReadRequest'];
$inputClass = $batchConfig['inputClass'];
$inputs = array_map(function ($crmId) use ($inputClass) {
$input = new $inputClass();
$input->setId($crmId);
return $input;
}, $crmIds);
$batchReadRequest->setInputs($inputs);
$batchReadRequest->setProperties($fields);
return $batchReadRequest;
}
private function validateApiResponse($response, string $objectType): void
{
if (! $response) {
throw new CrmException("HubSpot API returned null response for {$objectType} batch read");
}
}
private function processApiResults($response): array
{
$results = [];
$responseResults = $response->getResults();
if ($responseResults) {
foreach ($responseResults as $object) {
if ($object && $object->getId()) {
$results[$object->getId()] = [
'id' => $object->getId(),
'properties' => $object->getProperties() ?: [],
];
}
}
}
return $results;
}
private function logBatchResults(string $objectType, array $crmIds, array $results): void
{
$this->log->info("[HubSpot] Batch fetched {$objectType}", [
'requested_count' => count($crmIds),
'returned_count' => count($results),
'crm_ids' => $crmIds,
]);
}
private function handleBatchError(\Throwable $e, string $objectType, array $crmIds): void
{
$errorMessage = $e->getMessage() ?: 'Unknown error';
$errorTrace = $e->getTraceAsString() ?: 'No trace available';
$this->log->error("[HubSpot] Failed to batch fetch {$objectType}", [
'crm_ids' => $crmIds,
'error' => $errorMessage,
'trace' => $errorTrace,
]);
throw new CrmException("Failed to batch fetch {$objectType}: " . $errorMessage);
}
/**
* Batch read multiple opportunities by their CRM IDs
*
* @param array<string> $crmIds Array of HubSpot deal IDs (max 100)
* @param array<string> $fields Array of property names to fetch
*
* @return array<string, array> Array keyed by CRM ID with opportunity data
*/
public function getOpportunitiesByIds(array $crmIds, array $fields): array
{
return $this->batchReadObjects('deals', $crmIds, $fields);
}
/**
* Batch read multiple companies by their CRM IDs
*
* @param array<string> $crmIds Array of HubSpot company IDs (max 100)
* @param array<string> $fields Array of property names to fetch
*
* @return array<string, array> Array keyed by CRM ID with company data
*/
public function getCompaniesByIds(array $crmIds, array $fields): array
{
return $this->batchReadObjects('companies', $crmIds, $fields);
}
/**
* Batch read multiple contacts by their CRM IDs
*
* @param array<string> $crmIds Array of HubSpot contact IDs (max 100)
* @param array<string> $fields Array of property names to fetch
*
* @return array<string, array> Array keyed by CRM ID with contact data
*/
public function getContactsByIds(array $crmIds, array $fields): array
{
return $this->batchReadObjects('contacts', $crmIds, $fields);
}
/**
* @throws CompanyApiException
* @throws CrmException
*/
public function getAccountById(string $crmId, array $fields): array
{
try {
$company = $this->getNewInstance()->crm()->companies()->basicApi()->getById(
$crmId,
implode(',', $fields),
);
} catch (CompanyApiException $e) {
$this->log->info('[Hubspot] Failed to fetch account', [
'crm_id' => $crmId,
'reason' => $e->getMessage(),
]);
throw $e;
}
if (! $company instanceof CompaniesWithAssociations) {
throw new CrmException('Account not found');
}
return [
'id' => $company->getId(),
'properties' => $company->getProperties(),
];
}
/**
* @throws ContactApiException
* @throws CrmException
*/
public function getContactById(string $crmId, array $fields): array
{
try {
$contact = $this->getNewInstance()->crm()->contacts()->basicApi()->getById(
$crmId,
implode(',', $fields)
);
} catch (ContactApiException $e) {
$this->log->info('[Hubspot] Failed to fetch contact', [
'crm_id' => $crmId,
'reason' => $e->getMessage(),
]);
throw $e;
}
if (! $contact instanceof ContactsWithAssociations) {
throw new CrmException('Contact not found');
}
return [
'id' => $contact->getId(),
'properties' => $contact->getProperties(),
];
}
/**
* This is email search request that Hubspot offers as GET (more generous quota)
*/
public function getContactByEmail(string $email, array $fields = []): array
{
try {
$contact = $this->getNewInstance()->crm()->contacts()->basicApi()->getById(
$email,
implode(',', $fields),
null,
false,
'email'
);
return [
'id' => $contact->getId(),
'properties' => $contact->getProperties(),
];
} catch (ContactApiException $e) {
$this->log->info('[Hubspot] Failed to fetch contact', [
'email' => $email,
'reason' => $e->getMessage(),
]);
return [];
}
}
/**
* @throws CrmException
*/
public function fetchProperty(string $objectType, string $propertyId): Property
{
$result = $this->getNewInstance()->crm()->properties()->coreApi()->getByName($objectType, $propertyId);
if (! $result instanceof Property) {
$this->log->error('[Hubspot] Failed to fetch property', [
'object_type' => $objectType,
'property_id' => $propertyId,
'reason' => $result->getMessage(),
]);
throw new CrmException('Failed to fetch property');
}
return $result;
}
/**
* @return array<CrmFieldOption>
*/
public function fetchPropertyOptions(string $objectType, string $propertyId): array
{
/** @var array<CrmFieldOption> */
return $this->fetchProperty($objectType, $propertyId)->getOptions();
}
/**
* @return array<array{id:string, label:string, deleted:bool}>
*/
public function fetchCallDispositions(): array
{
/** @var Response $response */
$response = $this->getInstance()->engagements()->getCallDispositions();
/**
* @var array<array{
* id:string,
* label:string,
* deleted: bool
* }>
*/
return $response->toArray();
}
/**
* @return array<CrmFieldOption>
*/
public function fetchOpportunityPipelineStages(): array
{
$stages = [];
$apiResponse = $this->getNewInstance()->crm()->pipelines()->pipelinesApi()->getAll('deals');
if ($apiResponse instanceof Error) {
$this->log->error('[Hubspot] Failed to fetch opportunity pipelines', [
'reason' => $apiResponse->getMessage(),
]);
return [];
}
foreach ($apiResponse->getResults() as $pipeline) {
$pipelineStages = array_map(
static function (PipelineStage $stage) {
return [
'id' => $stage->getId(),
'label' => $stage->getLabel(),
];
},
$pipeline->getStages()
);
$stages = array_merge($stages, $pipelineStages);
}
return $stages;
}
public function fetchOpportunityPipelines(): array
{
$pipelines = [];
try {
$apiResponse = $this->makeRequest('/crm/v3/pipelines/deals');
} catch (\Exception $e) {
$this->log->info('[Hubspot] Failed to fetch opportunity pipelines', [
'reason' => $e->getMessage(),
]);
return [];
}
$response = $apiResponse->toArray();
foreach ($response['results'] as $pipeline) {
$pipelines[] = [
'id' => $pipeline['id'],
'label' => $pipeline['label'],
];
}
return $pipelines;
}
/**
* @return array<CrmFieldOption>
*/
public function fetchMeetingOutcomeFieldOptions(Field $field): array
{
return $field->getCrmProviderId() === 'meetingOutcome'
? $this->fetchMeetingOutcomeTypes()
: $this->fetchCallActivityTypes();
}
public function fetchMeetingOutcomeTypes(): array
{
return $this->extractMeetingTypeOptions(
'[URL_WITH_CREDENTIALS] Response $response */
$response = $this->getInstance()
->getClient()
->request('GET', $endpoint);
/**
* @var array<array{
* value: string,
* label: string,
* displayOrder: int
* }> $optionData
*/
$optionData = $response->toArray()['options'] ?? [];
$options = [];
foreach ($optionData as $item) {
$options[] = [
'id' => $item['value'],
'value' => $item['value'],
'label' => $item['label'],
'display_order' => $item['displayOrder'],
];
}
return $options;
}
/**
* @return array<CrmFieldOption>
*/
public function fetchDispositionFieldOptions(): array
{
$options = [];
$dispositions = $this->fetchCallDispositions();
foreach ($dispositions as $disposition) {
if ($disposition['deleted'] !== false) {
continue;
}
$option['value'] = $disposition['id'];
$option['id'] = $disposition['id'];
$option['label'] = $disposition['label'];
$options[] = $option;
}
return $options;
}
/**
* @return array<CrmFieldOption>
*/
public function fetchOpportunityFieldOptions(Field $field): array
{
if ($field->isStageField()) {
return $this->fetchOpportunityPipelineStages();
}
if ($field->isPipelineField()) {
return $this->fetchOpportunityPipelines();
}
return $this->fetchPropertyOptions('deals', $field->getCrmProviderId());
}
/**
* @throws BadRequest
* @throws HubspotException
*/
public function makeRequest(string $endpoint, $method = 'GET', $payload = [], ?string $queryString = null)
{
$endpoint = self::BASE_URL . $endpoint;
if ($method === 'GET') {
return $this->getInstance()->getClient()?->request(
method: $method,
endpoint: $endpoint,
query_string: $queryString
);
} else {
return $this->getInstance()->getClient()->request($method, $endpoint, [
'json' => ($payload),
]);
}
}
/**
* @throws BadRequest
* @throws HubspotException
*/
public function createMeeting(array $payload): Response
{
$endpoint = '/crm/v3/objects/meetings';
return $this->makeRequest($endpoint, 'POST', $payload);
}
/**
* @throws BadRequest
* @throws HubspotException
*/
public function updateMeeting(string $meetingId, array $payload): Response
{
$endpoint = '/crm/v3/objects/meetings/' . $meetingId;
return $this->makeRequest($endpoint, 'PATCH', $payload);
}
/**
* @throws \Exception
*/
public function createNote(
string $body,
string $ownerId,
int $timestamp,
string $objectId,
NoteObject $noteObject
): ?string {
try {
$noteInput = new SimplePublicObjectInput([
'properties' => [
'hs_note_body' => $body,
'hubspot_owner_id' => $ownerId,
'hs_timestamp' => $timestamp,
],
]);
// Create note
$note = $this->getNewInstance()->crm()->objects()->basicApi()->create('note', $noteInput);
$this->getNewInstance()->crm()->objects()->associationsApi()->create(
'note',
$note->getId(),
$this->getNoteObject($noteObject),
$objectId,
$this->getNoteAssociationType($noteObject),
);
return $note->getId();
} catch (\Exception $e) {
$this->log->error('[Hubspot] Failed to create note', [
'objectId' => $objectId,
'noteObject' => $noteObject->getObjectType(),
'reason' => $e->getMessage(),
]);
\Sentry::captureException($e);
}
return null;
}
public function updateEngagement(string $objectId, array $engagement, array $metadata): void
{
$this->getInstance()->engagements()->update($objectId, $engagement, $metadata);
}
public function getEngagementData(string $engagementId): array
{
$engagement = $this->getInstance()->engagements()->get($engagementId);
return $engagement->toArray();
}
public function createEngagement(array $engagement, array $associations, array $metadata): Response
{
return $this->getInstance()
->engagements()
->create($engagement, $associations, $metadata);
}
public function isUnauthorizedException(\Exception $e): bool
{
// Check for specific HubSpot API exception types first
if ($e instanceof BadRequest) {
// BadRequest can contain 401 status codes
return $e->getCode() === 401;
}
// Check for HTTP client exceptions with status codes
if ($e instanceof \GuzzleHttp\Exception\RequestException && $e->hasResponse()) {
$response = $e->getResponse();
if ($response !== null) {
return $response->getStatusCode() === 401;
}
}
// Check for Guzzle HTTP exceptions
if ($e instanceof \GuzzleHttp\Exception\ClientException) {
return $e->getCode() === 401;
}
// Fallback to string matching as last resort, but be more specific
$message = strtolower($e->getMessage());
return str_contains($message, '401 unauthorized') ||
str_contains($message, 'http 401') ||
str_contains($message, 'status code 401') ||
(preg_match('/\b401\b/', $message) && str_contains($message, 'unauthorized'));
}
/**
* Validates and refreshes the access token if needed before API requests.
* This ensures long-running processes don't fail due to token expiration.
*
* @throws SocialAccountTokenInvalidException
*/
public function ensureValidToken(): void
{
if ($this->oauthAccount === null) {
return;
}
$newToken = $this->tokenManager->ensureValidToken($this->oauthAccount);
if ($newToken !== null) {
$this->accessToken = $newToken;
}
}
public function getConfig()
{
return $this->config;
}
// returns only active (archived=false)
public function getOwners(): array
{
return $this->getNewInstance()->crm()->owners()->getAll();
}
/**
* @param bool $archived
*
* @return array<Owner>|[]
*/
public function getOwnersArchived(bool $archived = true): array
{
$endpoint = '/crm/v3/owners';
$queryParams = [
'archived' => $archived ? 'true' : 'false',
];
$queryString = http_build_query($queryParams);
$owners = [];
try {
$response = $this->makeRequest(endpoint: $endpoint, queryString: $queryString);
$responseData = $response?->toArray();
foreach ($responseData['results'] as $result) {
try {
$owners[] = Owner::create($result);
} catch (Throwable $e) {
$this->log->error('[HubSpot] Failed to process owner data', [
'result' => $result,
'error' => $e->getMessage(),
]);
continue;
}
}
} catch (Throwable $e) {
$this->log->error('HubSpot] Failed to fetch owners', [
'archived' => $archived,
'error' => $e->getMessage(),
]);
return [];
}
return $owners;
}
public function getMeeting(string $engagementId): ObjectWithAssociations
{
return $this->getNewInstance()->crm()->objects()->basicApi()
->getById('meeting', $engagementId, null, 'contact,company,deal');
}
public function deleteEngagement(string $engagementId): void
{
$this->getInstance()->engagements()->delete((int) $engagementId);
}
public function getAssociationsData(array $ids, string $fromObject, string $toObject): array
{
$associationData = [];
$idChunks = array_chunk($ids, self::ASSOCIATIONS_BATCH_SIZE_LIMIT);
foreach ($idChunks as $idChunk) {
try {
$batchInput = new \HubSpot\Client\Crm\Associations\Model\BatchInputPublicObjectId();
$batchInput->setInputs(array_map(function ($id) {
$publicObjectId = new \HubSpot\Client\Crm\Associations\Model\PublicObjectId();
$publicObjectId->setId($id);
return $publicObjectId;
}, $idChunk));
$associatedObjectsData = $this
->getNewInstance()
->crm()
->associations()
->batchApi()
->read($fromObject, $toObject, $batchInput);
if ($associatedObjectsData instanceof \HubSpot\Client\Crm\Associations\Model\BatchResponsePublicAssociationMulti) {
foreach ($associatedObjectsData->getResults() as $association) {
$from = $association->getFrom()->getId();
$toAssociations = $association->getTo();
if (! empty($toAssociations)) {
$associationData[$from] = array_map(function ($item) {
return $item->getId();
}, $toAssociations);
}
}
}
// } catch (RateLimitException $e) {
// throw $e;
} catch (\Exception $e) {
$this->log->error('[Hubspot] Failed to fetch associations', [
'from_object' => $fromObject,
'to_object' => $toObject,
'reason' => $e->getMessage(),
]);
}
}
return $associationData;
}
/**
* @throws \Exception
*/
private function getNoteAssociationType(NoteObject $noteObject): string
{
return match($noteObject) {
NoteObject::Opportunity => 'note_to_deal',
NoteObject::Lead, NoteObject::Contact => 'note_to_contact', // or 'note_to_lead' if your portal supports it
NoteObject::Account => 'note_to_company',
NoteObject::Call, NoteObject::Event => throw new \Exception('Not supported'),
};
}
/**
* @throws \Exception
*/
private function getNoteObject(NoteObject $noteObject): string
{
return match($noteObject) {
NoteObject::Opportunity => 'deal',
NoteObject::Lead, NoteObject::Contact => 'contact',
NoteObject::Account => 'company',
NoteObject::Call, NoteObject::Event => throw new \Exception('Not supported'),
};
}
public function addAssociations(string $objectType, string $associationType, array $payload): Response
{
$endpoint = "/crm/v4/associations/$objectType/$associationType/batch/create";
return $this->makeRequest($endpoint, 'POST', $payload);
}
public function removeAssociations(string $objectType, string $associationType, array $payload): Response
{
$endpoint = "/crm/v4/associations/$objectType/$associationType/batch/archive";
return $this->makeRequest($endpoint, 'POST', $payload);
}
}
Show Replace Field
Search History
429
New Line
Match Case
Words
Regex
Replace History
Replace
New Line
Preserve case
1/4
Previous Occurrence
Next Occurrence
Filter Search Results
Open in Window, Multiple Cursors
Click to highlight
Close
Sync Changes
Hide This Notification
Code changed:
Hide
54
Previous Highlighted Error
Next Highlighted Error
[2026-05-11 11:08:45] local.INFO: Jiminny\Console\Commands\Command::run Memory usage before starting command {"command":"mailbox:batch:retry-failed","memoryBeforeCommandInMb":60.0,"memoryPeakBeforeCommandInMb":99.727} {"correlation_id":"43b1fb67-9aac-4fc6-9ced-689ecda5c548","trace_id":"60028d0e-dcd8-496a-a7ba-3a04b8d646e2"}
[2026-05-11 11:08:45] local.INFO: [Commands/AsyncUpdateEsEntities] Starting ES update worker {"pid":72650,"workerId":"","target":"activities"} {"correlation_id":"6d49ffdc-2ed7-4eae-a1ee-e25ca95bbea8","trace_id":"906573b5-005c-4820-8a32-3b0703ea86dd"}
[2026-05-11 11:08:46] local.INFO: Jiminny\Console\Commands\Command::run Memory usage for command {"command":"mailbox:batch:retry-failed","memoryBeforeCommandInMb":60.0,"memoryAfterCommandInMB":60.0,"memoryPeakBeforeCommandInMb":99.727,"memoryPeakAfterCommandInMB":99.727} {"correlation_id":"43b1fb67-9aac-4fc6-9ced-689ecda5c548","trace_id":"60028d0e-dcd8-496a-a7ba-3a04b8d646e2"}
[2026-05-11 11:09:12] local.INFO: [MatchActivityCrmData] Starting CRM data matching {"activity":615092,"remote_search":true,"set_configuration":2,"old_state":{"lead_id":null,"contact_id":null,"account_id":26,"opportunity_id":22,"stage_id":89}} {"correlation_id":"f33d47cb-76c6-4c27-a641-48cbf69e623d","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:12] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":615092} {"correlation_id":"f33d47cb-76c6-4c27-a641-48cbf69e623d","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:12] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":615092,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"f33d47cb-76c6-4c27-a641-48cbf69e623d","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:12] local.INFO: [MatchActivityCrmData] Participants old state {"activity":615092,"participants":[{"id":1004102,"user_id":null,"contact_id":null,"lead_id":null},{"id":1004103,"user_id":89,"contact_id":null,"lead_id":null}]} {"correlation_id":"f33d47cb-76c6-4c27-a641-48cbf69e623d","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:12] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"f33d47cb-76c6-4c27-a641-48cbf69e623d","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:12] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"f33d47cb-76c6-4c27-a641-48cbf69e623d","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:12] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"f33d47cb-76c6-4c27-a641-48cbf69e623d","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:12] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"f33d47cb-76c6-4c27-a641-48cbf69e623d","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:12] local.INFO: [Prospect match] Cache miss, calling the API {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"f33d47cb-76c6-4c27-a641-48cbf69e623d","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:13] local.INFO: [Hubspot] Failed to fetch contact {"email":"[EMAIL]","reason":"[404] Client error: `GET https://api.hubapi.com/crm/v3/objects/contacts/nikolay.nikolov%40jiminny.com?properties=email%2Cfirstname%2Clastname%2Ccountry%2Cphone%2Cmobilephone%2Cjobtitle%2Chubspot_owner_id%2Cassociatedcompanyid%2Cphoto&archived=0&idProperty=email` resulted in a `404 Not Found` response"} {"correlation_id":"f33d47cb-76c6-4c27-a641-48cbf69e623d","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:13] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"f33d47cb-76c6-4c27-a641-48cbf69e623d","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:13] local.WARNING: [Hubspot] No retry-after header or known message, using default {"exception_class":"SevenShores\\Hubspot\\Exceptions\\BadRequest","message":""} {"correlation_id":"f33d47cb-76c6-4c27-a641-48cbf69e623d","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:13] local.WARNING: [Hubspot] Received 429 from API {"team_id":2,"config_id":2,"retry_after":10,"message":"","reason":"Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response:
{\"status\":\"error\",\"message\":\"You have reached your secondly limit.\",\"errorType\":\"RATE_LIMIT\",\"correlationId\":\"019e16ba-1 (truncated...)
"} {"correlation_id":"f33d47cb-76c6-4c27-a641-48cbf69e623d","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:13] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":10,"delay":12} {"correlation_id":"f33d47cb-76c6-4c27-a641-48cbf69e623d","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [MatchActivityCrmData] Starting CRM data matching {"activity":614436,"remote_search":true,"set_configuration":2,"old_state":{"lead_id":null,"contact_id":null,"account_id":26,"opportunity_id":22,"stage_id":89}} {"correlation_id":"ccafe863-7885-4971-96fb-87ef6dd4adf3","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":614436} {"correlation_id":"ccafe863-7885-4971-96fb-87ef6dd4adf3","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":614436,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"ccafe863-7885-4971-96fb-87ef6dd4adf3","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [MatchActivityCrmData] Participants old state {"activity":614436,"participants":[{"id":1002751,"user_id":null,"contact_id":null,"lead_id":null},{"id":1002752,"user_id":89,"contact_id":null,"lead_id":null}]} {"correlation_id":"ccafe863-7885-4971-96fb-87ef6dd4adf3","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"ccafe863-7885-4971-96fb-87ef6dd4adf3","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"ccafe863-7885-4971-96fb-87ef6dd4adf3","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"ccafe863-7885-4971-96fb-87ef6dd4adf3","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"ccafe863-7885-4971-96fb-87ef6dd4adf3","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [Prospect match] Cache / local search hit {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"ccafe863-7885-4971-96fb-87ef6dd4adf3","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"ccafe863-7885-4971-96fb-87ef6dd4adf3","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":10,"delay":10} {"correlation_id":"ccafe863-7885-4971-96fb-87ef6dd4adf3","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [MatchActivityCrmData] Starting CRM data matching {"activity":614382,"remote_search":true,"set_configuration":2,"old_state":{"lead_id":null,"contact_id":null,"account_id":26,"opportunity_id":22,"stage_id":89}} {"correlation_id":"f00a4506-adfe-4fdc-b932-e6d2bc751fde","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":614382} {"correlation_id":"f00a4506-adfe-4fdc-b932-e6d2bc751fde","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":614382,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"f00a4506-adfe-4fdc-b932-e6d2bc751fde","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [MatchActivityCrmData] Participants old state {"activity":614382,"participants":[{"id":1002632,"user_id":null,"contact_id":null,"lead_id":null},{"id":1002633,"user_id":89,"contact_id":null,"lead_id":null}]} {"correlation_id":"f00a4506-adfe-4fdc-b932-e6d2bc751fde","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"f00a4506-adfe-4fdc-b932-e6d2bc751fde","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"f00a4506-adfe-4fdc-b932-e6d2bc751fde","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"f00a4506-adfe-4fdc-b932-e6d2bc751fde","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"f00a4506-adfe-4fdc-b932-e6d2bc751fde","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [Prospect match] Cache / local search hit {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"f00a4506-adfe-4fdc-b932-e6d2bc751fde","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"f00a4506-adfe-4fdc-b932-e6d2bc751fde","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":10,"delay":12} {"correlation_id":"f00a4506-adfe-4fdc-b932-e6d2bc751fde","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [MatchActivityCrmData] Starting CRM data matching {"activity":614381,"remote_search":true,"set_configuration":2,"old_state":{"lead_id":null,"contact_id":null,"account_id":26,"opportunity_id":22,"stage_id":89}} {"correlation_id":"36bd73f5-17f9-4f70-8254-2214543c7f8e","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":614381} {"correlation_id":"36bd73f5-17f9-4f70-8254-2214543c7f8e","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":614381,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"36bd73f5-17f9-4f70-8254-2214543c7f8e","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [MatchActivityCrmData] Participants old state {"activity":614381,"participants":[{"id":1002630,"user_id":null,"contact_id":null,"lead_id":null},{"id":1002631,"user_id":89,"contact_id":null,"lead_id":null}]} {"correlation_id":"36bd73f5-17f9-4f70-8254-2214543c7f8e","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"36bd73f5-17f9-4f70-8254-2214543c7f8e","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"36bd73f5-17f9-4f70-8254-2214543c7f8e","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"36bd73f5-17f9-4f70-8254-2214543c7f8e","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"36bd73f5-17f9-4f70-8254-2214543c7f8e","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [Prospect match] Cache / local search hit {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"36bd73f5-17f9-4f70-8254-2214543c7f8e","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"36bd73f5-17f9-4f70-8254-2214543c7f8e","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:14] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":10,"delay":10} {"correlation_id":"36bd73f5-17f9-4f70-8254-2214543c7f8e","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:15] local.INFO: [MatchActivityCrmData] Starting CRM data matching {"activity":614378,"remote_search":true,"set_configuration":2,"old_state":{"lead_id":null,"contact_id":6167,"account_id":null,"opportunity_id":null,"stage_id":null}} {"correlation_id":"a4a3a058-ec22-4f04-bb14-a9bff18ce214","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:15] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":614378} {"correlation_id":"a4a3a058-ec22-4f04-bb14-a9bff18ce214","trace_id":"7954a095-b2fb-4c22-bbb6-0c5baa0c7176"}
[2026-05-11 11:09:15] local.INFO: [ AsyncU...
|
18352
|
NULL
|
NULL
|
NULL
|
|
18359
|
792
|
37
|
2026-05-11T11:13:01.690778+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778497981690_m1.jpg...
|
PhpStorm
|
faVsco.js – Client.php
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
iTerm2ShellEditViewSessionScriptsProfilesWindowHel iTerm2ShellEditViewSessionScriptsProfilesWindowHelp§ Preparation for Refi... in 48 mDEV (docker)-zshDOCKERcompiledeventsroutesviews• ₴1DEV (docker)APP (-zsh)883Jiminny-worker-processing-2:j1minny-worker-processing-2_00: stoppedjiminny-worker-processing-3:jiminny-worker-processing-3_00: stoppedjiminny-worker-processing-4: jiminny-worker-processing-4_00: stoppedjiminny-worker-processing-delayed: jiminny-worker-processing-delayed_00: stoppedworker-analytics:worker-analytics_00: stoppedjiminny-worker-processing-5:jiminny-worker-processing-5_00: stoppedworker-crm-update:worker-crm-update_00: stoppedworker-download:worker-download_00:stoppedworker-nudges:worker-nudges_00:stoppedjiminny-worker-processing-1:jiminny-worker-processing-1_00: stoppedworker-emails:worker-emails_00: stoppedworker:worker_00: stoppedworker-audio:worker-audio_00: stoppedworker-calendar:worker-calendar_00:stoppedworker-conferences:worker-conferences_00: stoppedworker-crm-sync:worker-crm-sync_00:stoppedworker-es-update:worker-es-update_00: stoppedartisan-schedule:artisan-schedule_00: stoppedartisan-schedule:artisan-schedule_00: startedjiminny-worker-processing-1:jiminny-worker-processing-1_00: startedJiminny-worker-processing-2:jiminny-worker-processing-2_00: startedjiminny-worker-processing-3:jiminny-worker-processing-3_00: startedjiminny-worker-processing-4:jiminny-worker-processing-4_00: startedjiminny-worker-processing-5:jiminny-worker-processing-5_00: startedjiminny-worker-processing-delayed: jiminny-worker-processing-delayed_00: startedworker:worker_00: startedworker-analytics:worker-analytics_00: startedworker-audio:worker-audio_00: startedworker-calendar:worker-calendar_00:startedworker-conferences:worker-conferences_00: startedworker-crm-sync:worker-crm-sync_00: startedworker-crm-update:worker-crm-update_00: startedworker-download:worker-download_00: startedworker-emails:worker-emails_00: startedworker-es-update:worker-es-update_00:startedworker-nudges:worker-nudges_00: startedroot@docker_lamp_1:/home/jiminny#php artisan jiminny:debugDispatching 100 MatchActivityCrmDatajobs (portal=2)Done.Watch logs and runjiminny: debug observeRateLimit toinspect cache state.root@docker_lamp_1:/home/jiminny# php artisanoptimize:clear && supervisorctl restart all-zsh*5100% C8• Mon 11 May 14:13:01T&1-zsh*7screenpipe"O ₴62.01ms DONE1.32ms DONE1.13ms DONE15.28ms DONEDEV...
|
NULL
|
7598608299684856364
|
NULL
|
click
|
ocr
|
NULL
|
iTerm2ShellEditViewSessionScriptsProfilesWindowHel iTerm2ShellEditViewSessionScriptsProfilesWindowHelp§ Preparation for Refi... in 48 mDEV (docker)-zshDOCKERcompiledeventsroutesviews• ₴1DEV (docker)APP (-zsh)883Jiminny-worker-processing-2:j1minny-worker-processing-2_00: stoppedjiminny-worker-processing-3:jiminny-worker-processing-3_00: stoppedjiminny-worker-processing-4: jiminny-worker-processing-4_00: stoppedjiminny-worker-processing-delayed: jiminny-worker-processing-delayed_00: stoppedworker-analytics:worker-analytics_00: stoppedjiminny-worker-processing-5:jiminny-worker-processing-5_00: stoppedworker-crm-update:worker-crm-update_00: stoppedworker-download:worker-download_00:stoppedworker-nudges:worker-nudges_00:stoppedjiminny-worker-processing-1:jiminny-worker-processing-1_00: stoppedworker-emails:worker-emails_00: stoppedworker:worker_00: stoppedworker-audio:worker-audio_00: stoppedworker-calendar:worker-calendar_00:stoppedworker-conferences:worker-conferences_00: stoppedworker-crm-sync:worker-crm-sync_00:stoppedworker-es-update:worker-es-update_00: stoppedartisan-schedule:artisan-schedule_00: stoppedartisan-schedule:artisan-schedule_00: startedjiminny-worker-processing-1:jiminny-worker-processing-1_00: startedJiminny-worker-processing-2:jiminny-worker-processing-2_00: startedjiminny-worker-processing-3:jiminny-worker-processing-3_00: startedjiminny-worker-processing-4:jiminny-worker-processing-4_00: startedjiminny-worker-processing-5:jiminny-worker-processing-5_00: startedjiminny-worker-processing-delayed: jiminny-worker-processing-delayed_00: startedworker:worker_00: startedworker-analytics:worker-analytics_00: startedworker-audio:worker-audio_00: startedworker-calendar:worker-calendar_00:startedworker-conferences:worker-conferences_00: startedworker-crm-sync:worker-crm-sync_00: startedworker-crm-update:worker-crm-update_00: startedworker-download:worker-download_00: startedworker-emails:worker-emails_00: startedworker-es-update:worker-es-update_00:startedworker-nudges:worker-nudges_00: startedroot@docker_lamp_1:/home/jiminny#php artisan jiminny:debugDispatching 100 MatchActivityCrmDatajobs (portal=2)Done.Watch logs and runjiminny: debug observeRateLimit toinspect cache state.root@docker_lamp_1:/home/jiminny# php artisanoptimize:clear && supervisorctl restart all-zsh*5100% C8• Mon 11 May 14:13:01T&1-zsh*7screenpipe"O ₴62.01ms DONE1.32ms DONE1.13ms DONE15.28ms DONEDEV...
|
18356
|
NULL
|
NULL
|
NULL
|
|
18360
|
793
|
34
|
2026-05-11T11:13:01.587144+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778497981587_m2.jpg...
|
PhpStorm
|
faVsco.js – Client.php
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
PnostormIavicatecodeFV faVsco.js?9 JY-20725-handle PnostormIavicatecodeFV faVsco.js?9 JY-20725-handle-HS-search-rate-limiProletey(C) TranscodeParameterResclc) UserService.onp(C) Uuid.pnp> D Traitsm ucecaces> D User> D Utils› D Validation> OvOphp nelpers.ong© InitialFrontendState.php© Jiminny.phpc) Plan.oho© Serializer.phpC) TeamScimDetails.ohpbootstrap>© build.> contia>@ contrib→ database>M docsM front-end>D lang> node_modules library rootM ohostan> M nublic> D resourcesv Mroutesphp api.phpphp api_v2.phppnp console.onopnp customer_api.onppnp embedded.ongphp nealtn.onppnp scim.onophp uprotectedweb.phpphp web.phpphp webhook.php>O scriptsv O storage•aoo> M debuabar.… M frameworkv loasaitianore• audio wav= custom.loalT SyncCrmEntitiesTrait.phpC) CachedCrmServiceDecorator.ong© RateLimitException.php© PaginationConfia.phdclass Cllent extends Baseclient 1mpLements Hubspotclientintertace nubu1etunction 1shubspotrateuimithrowaole se: 000l11 $e instanceof \GuzzleHttp\Exception RequestExceptionreturn (int) $e->getCode === 429:recurn talsepubuac function parseRetrvAfterThrowable Se: 1nt'getResponseHeaders')) {Sheaders = $e->getResponseHeaders() ?: [];svalue = Sheadersl'Retry-After'J ?? Sheadersl'retry-after"J ?? null;if (is arnav(Svalue)) {= Svaluel0l 22 nullif Gs numeric(Svalue)) <return (int) $value;Smessage = strtolower(Se->getMessageO):if (str_contains(Smessage, 'daily')) {if (str_ contains(Smessaqe, 'ten secondly')) {recurn 10-if (str_contains(Smessaqe, 'secondly')) {return 1155|Sthis->loa->warnina('[Hubspotl No retry-after header or known message. using default'. [l'exception_class' => get_class($e),157= hubspot-journal-poll.log= laravel log< nhnunit ymus tht ispublic function parseMessage(Throwable $e): string= oauth-nrivate kevS0 hla• Preparation tor Kell... In 40m100% 5• Mon 11 May 14:13:01HandleHubsnotPatel imitTect- console [PRODI& console lEUllA console [STAGING]© UserAutomatedReportsController.php© PlaybackController.php(C) Hubspot/Service.pnp© HubSpot/Service.phpT DeleteCrmEntityTrait.php© VerifyActivityCrmTaskJob.php© RateLimitExceptionTest.php© Job.php© CrmActivityService.php© MatchCrmData.php© CrmObjectsResolver.php© ProviderRateLimiter.phpm A2 467 ×3л V= custom.logQ- 429= laravel.log X 4 SF (jiminny@localhost]4 HS_local [jiminny@localhost]X Cc W .*0 resultsuu 1 tutufo 4 spaces 0...
|
NULL
|
-6777052294096494189
|
NULL
|
click
|
ocr
|
NULL
|
PnostormIavicatecodeFV faVsco.js?9 JY-20725-handle PnostormIavicatecodeFV faVsco.js?9 JY-20725-handle-HS-search-rate-limiProletey(C) TranscodeParameterResclc) UserService.onp(C) Uuid.pnp> D Traitsm ucecaces> D User> D Utils› D Validation> OvOphp nelpers.ong© InitialFrontendState.php© Jiminny.phpc) Plan.oho© Serializer.phpC) TeamScimDetails.ohpbootstrap>© build.> contia>@ contrib→ database>M docsM front-end>D lang> node_modules library rootM ohostan> M nublic> D resourcesv Mroutesphp api.phpphp api_v2.phppnp console.onopnp customer_api.onppnp embedded.ongphp nealtn.onppnp scim.onophp uprotectedweb.phpphp web.phpphp webhook.php>O scriptsv O storage•aoo> M debuabar.… M frameworkv loasaitianore• audio wav= custom.loalT SyncCrmEntitiesTrait.phpC) CachedCrmServiceDecorator.ong© RateLimitException.php© PaginationConfia.phdclass Cllent extends Baseclient 1mpLements Hubspotclientintertace nubu1etunction 1shubspotrateuimithrowaole se: 000l11 $e instanceof \GuzzleHttp\Exception RequestExceptionreturn (int) $e->getCode === 429:recurn talsepubuac function parseRetrvAfterThrowable Se: 1nt'getResponseHeaders')) {Sheaders = $e->getResponseHeaders() ?: [];svalue = Sheadersl'Retry-After'J ?? Sheadersl'retry-after"J ?? null;if (is arnav(Svalue)) {= Svaluel0l 22 nullif Gs numeric(Svalue)) <return (int) $value;Smessage = strtolower(Se->getMessageO):if (str_contains(Smessage, 'daily')) {if (str_ contains(Smessaqe, 'ten secondly')) {recurn 10-if (str_contains(Smessaqe, 'secondly')) {return 1155|Sthis->loa->warnina('[Hubspotl No retry-after header or known message. using default'. [l'exception_class' => get_class($e),157= hubspot-journal-poll.log= laravel log< nhnunit ymus tht ispublic function parseMessage(Throwable $e): string= oauth-nrivate kevS0 hla• Preparation tor Kell... In 40m100% 5• Mon 11 May 14:13:01HandleHubsnotPatel imitTect- console [PRODI& console lEUllA console [STAGING]© UserAutomatedReportsController.php© PlaybackController.php(C) Hubspot/Service.pnp© HubSpot/Service.phpT DeleteCrmEntityTrait.php© VerifyActivityCrmTaskJob.php© RateLimitExceptionTest.php© Job.php© CrmActivityService.php© MatchCrmData.php© CrmObjectsResolver.php© ProviderRateLimiter.phpm A2 467 ×3л V= custom.logQ- 429= laravel.log X 4 SF (jiminny@localhost]4 HS_local [jiminny@localhost]X Cc W .*0 resultsuu 1 tutufo 4 spaces 0...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
18366
|
793
|
38
|
2026-05-11T11:13:26.461213+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778498006461_m2.jpg...
|
PhpStorm
|
faVsco.js – Client.php
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
JY-20725-handle-HS-search Project: faVsco.js, menu
JY-20725-handle-HS-search-rate-limit, menu
Start Listening for PHP Debug Connections
HandleHubspotRateLimitTest
Run 'HandleHubspotRateLimitTest'
Debug 'HandleHubspotRateLimitTest'
More Actions...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"bounds":{"left":0.025930852,"top":0.019952115,"width":0.03856383,"height":0.025538707},"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JY-20725-handle-HS-search-rate-limit, menu","depth":5,"bounds":{"left":0.064494684,"top":0.019952115,"width":0.09541223,"height":0.025538707},"on_screen":true,"help_text":"Git Branch: JY-20725-handle-HS-search-rate-limit","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"bounds":{"left":0.82413566,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"HandleHubspotRateLimitTest","depth":6,"bounds":{"left":0.8394282,"top":0.019952115,"width":0.076130316,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'HandleHubspotRateLimitTest'","depth":6,"bounds":{"left":0.9155585,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Debug 'HandleHubspotRateLimitTest'","depth":6,"bounds":{"left":0.9268617,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More Actions","depth":6,"bounds":{"left":0.9381649,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
3299086470291663550
|
-8349389703787247352
|
visual_change
|
hybrid
|
NULL
|
Project: faVsco.js, menu
JY-20725-handle-HS-search Project: faVsco.js, menu
JY-20725-handle-HS-search-rate-limit, menu
Start Listening for PHP Debug Connections
HandleHubspotRateLimitTest
Run 'HandleHubspotRateLimitTest'
Debug 'HandleHubspotRateLimitTest'
More Actions
S0 Ha.& Preparation for Refi... in 47 n100% L2• Mon 11 May 14:13:26FV faVsco.js?9 JY-20725-handle-HS-search-rate-limitroledey© HubspotPaginationService.php© BatchSyncCollectolT SyncCrmEntitiesTrait.phpC) CachedCrmServiceDecorator.onge balchsynckealssec clientone© ClosedDealStagesS © RateLimitException.phpDealrielasservice.gc)Decorateacuivilv.or© FieldDefinitions.phrC) FieldT vpeconvertee Hubspotclientinterc) Hubspotlokenman© PayloadBuilder.phpC) RemotecrmobiectrP ResponseNormalizec) Service.onrC)SvncFieldAction.onC) SvncRelatedActivitC) WebhookSvncBatclv MintearationAorM AcceccorsConfigD DTO• M SiltersD Jobs. M ProspectSearchStrW sevice lraits© DataClient.php© DecorateActivity.ph(e) LocalSearch.onpu Localsearchinteria© RemoteSearch.phpc) Service.phpv W Listeners© ConvertLeadActivitc) PurceLookuocache> M Metadata> Miarationa Pioedrivev Salesforce• D FieldsM OnnortunitvMatcheMOnnortunitvSvneStM ProsneetSearchStr.M ServiceTraitcC) Client nhr© DecorateActivity.ph. Delete@biectsTrait© FieldDefinitions.php© PayloadBuilder.php© Profile.php© QueryBuilder.php© HandleHubspotRateLimit.phpclass Cllent extends Baseclient 1mpLements Hubspotclientintertace125130142146151153|1541601nubu1etunction 1shubspotrateuimithrowable se: 00011 $e instanceof \GuzzleHttp\Exception\RequestExceptionreturn (int) $e->getCode === 429:recurn talsepubunc function parseRetrvAfter(Throwable Se: 1nt'getResponseHeaders')) {Sheaders = $e->getResponseHeaders() ?: []:svalue = Sheadersl'Retry-After'J ?? Sheadersl'retry-afterJ ?? null;if (is arnav(Svalue)) {Svalue = Svalueldl 22 null.if (is_numeric($value)) 1return (int) Svalue:Smessage = strtolower(Se->getMessageO):if (str_contains(Smessage, 'daily')) {if (str_ contains(Smessaqe, 'ten secondly')) {recurn 10if (str_contains(Smessaqe, 'secondly')) {return 1Sthis->loa->warnina('[Hubspotl No retry-after header or known message, usina default'. [l'exception_class' => get_class($e),© UserAutomatedReportsController.php© PlaybackController.php(C) Hubspot/Service.pnp(c) HubSpot/Service.onpT DeleteCrmEntityTrait.php© VerifyActivityCrmTaskJob.php© RateLimitExceptionTest.php© Job.php© CrmActivityService.php© MatchCrmData.php© CrmObjectsResolver.php© ProviderRateLimiter.phpmA2 467 ×3л V= custom.log=laravel.log X 4 SF jiminny@localhost)4 HS_local [jiminny@localhost]console [pRODlA console [EUiconsole [STAGINGIQ- 429X 3 Cc W .*L2026-05-11 11:13:17) local.INF0: Jiminny \Console \Commands \Command::run Memory usage before starting command 1"comnand": "meeting-bot:schedule-bot", "memoryBeforel2026-05-11 11:13:17 Locol1NF0:ScheduleBotcommandl Numben of activities to he cantured: 0[2026-05-11 11:13:17] Local.INF0: Jiminny\Console\Commands\Command::run Memory usage for command {"command" : "meeting-bot: schedule-bot", "memoryBeforeCommandInMb"public function parseMessage(Throwable $e): stringMiIIfo 4 spaces...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
18367
|
792
|
40
|
2026-05-11T11:13:27.452407+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778498007452_m1.jpg...
|
PhpStorm
|
faVsco.js – laravel.log
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
JY-20725-handle-HS-search Project: faVsco.js, menu
JY-20725-handle-HS-search-rate-limit, menu
Start Listening for PHP Debug Connections
HandleHubspotRateLimitTest...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JY-20725-handle-HS-search-rate-limit, menu","depth":5,"on_screen":true,"help_text":"Git Branch: JY-20725-handle-HS-search-rate-limit","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"HandleHubspotRateLimitTest","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
1684527879063584500
|
-8348266015821985344
|
click
|
hybrid
|
NULL
|
Project: faVsco.js, menu
JY-20725-handle-HS-search Project: faVsco.js, menu
JY-20725-handle-HS-search-rate-limit, menu
Start Listening for PHP Debug Connections
HandleHubspotRateLimitTest
iTerm2ShellEditViewSessionScriptsProfilesWindowHelpDEV (docker)-zsh$084(ab)§ Preparation for Refi... in 47 mDOCKER- ₴81DEV (docker)₴2APP (-zsh)H3worker-crm-update:worker-crm-update_00: stoppedworker-download:worker-download_00:stoppedworker-nudges:worker-nudges_00: stoppedjiminny-worker-processing-1:jiminny-worker-processing-1_00: stoppedworker-emails:worker-emails_00: stoppedworker:worker_00: stoppedworker-audio:worker-audio_00: stoppedworker-calendar:worker-calendar_00:stoppedworker-conferences:worker-conferences_00: stoppedworker-crm-sync:worker-crm-sync_00:stoppedworker-es-update:worker-es-update_00: stoppedartisan-schedule:artisan-schedule_00: stoppedartisan-schedule:artisan-schedule_00: startedjiminny-worker-processing-1:jiminny-worker-processing-1_00: startedjiminny-worker-processing-2:jiminny-worker-processing-2_00: startedjiminny-worker-processing-3:jiminny-worker-processing-3_00: startedjiminny-worker-processing-4:jiminny-worker-processing-4_00: startedjiminny-worker-processing-5:jiminny-worker-processing-5_00: startedjiminny-worker-processing-delayed: jiminny-worker-processing-delayed_00: startedworker:worker_00: startedworker-analytics:worker-analytics_00: startedworker-audio:worker-audio_00: startedworker-calendar:worker-calendar_00: startedworker-conferences:worker-conferences_00: startedworker-crm-sync:worker-crm-sync_00: startedworker-crm-update:worker-crm-update_00: startedworker-download:worker-download_00: startedworker-emails:worker-emails_00: startedworker-es-update:worker-es-update_00: startedworker-nudges:worker-nudges_00: startedroot@docker_lamp_1:/home/jiminny# php artisan jiminny: debugDispatching 100 MatchActivityCrmDatajobs (portal=2)Done.Watch logs and run jiminny:debug observeRateLimit to inspect cachestate.root@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart allINFOClearing cached bootstrap files.configcachecompiledeventsroutesviews-zshX5screenpipe"100% <8• Mon 11 May 14:13:27181O ₴6-zsh+DEV4.18ms DONE11.06ms DONE1.84ms DONE1.32ms DONE1.43ms DONE21.19ms DONE...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
18368
|
793
|
39
|
2026-05-11T11:13:29.746412+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778498009746_m2.jpg...
|
PhpStorm
|
faVsco.js – laravel.log
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
PhostormVIewINavicareCodeLaravelFV faVsco.js°9 JY- PhostormVIewINavicareCodeLaravelFV faVsco.js°9 JY-20725-handle-HS-search-rate-linProiect© BatchSyncCollectolT SyncCrmEntitiesTrait.phpC) CachedCrmServiceDecorator.onge balchsynckealsse© ClosedDealStagesS © RateLimitException.phpDealrielasservice.gc) Decorateacuiviv.or© FieldDefinitions.phrC) FieldT vpeconvertee Hubspotclientinterc) Hubspotlokenman© PayloadBuilder.phpC) RemotecrmobiectrP ResponseNormalizec) Service.onrC)SvncFieldAction.onC) SvncRelatedActivitC) WebhookSvncBatclv MintearationAorM Acceccors• D ConfigD DTO• M SiltersD Jobs. M ProspectSearchStraW sevice lraits© DataClient.php© DecorateActivity.ph(e) LocalSearch.onpu Localsearchinteria© RemoteSearch.phpc) Service.phpv _ Listeners© ConvertLeadActivitc) PurceLookuocache> M Metadata> MiarationPioedrivev Salesforce• D FieldsM OnnortunitvMatcheMOnnortunitvSvneStM ProsneetSearchStr.M ServiceTraitcC) Client nhr© DecorateActivity.ph. Delete@biectsTrait© FieldDefinitions.php© PayloadBuilder.php© Profile.php© QueryBuilder.phpTacts naccod. 12 (todav 12:02class Cllent extends Baseclient 1mpLements Hubspotclientintertace1251301401421461511531541601nubu1etunction 1shubspotrateuimithrowaole se: 000l11 $e instanceof \GuzzleHttp\Exception RequestExceptionreturn (int) $e->getCode === 429:recurn talsepubuac function parseRetrvAfterThrowable Se: 1nt1f method existsSe.qetResponseHeaders'?Sheaders = $e->getResponseHeaders() ?: []:svalue = Sheadersl'Retry-After'J ?? Sheadersl'retry-after"J ?? null;if (is arnav(Svalue)) {Svalue = Svalueldl 22 null.if (is_numeric($value)) 1return (int) $valve;Smessage = strtolower(Se->getMessageO):if (str_contains(Smessage, 'daily')) {if (str_ contains(Smessaqe, 'ten secondly')) {recurn 10-if (str_contains(Smessaqe, 'secondly')) {return 1Sthis->loa->warnina('[Hubspotl No retry-after header or known message. using default'. [l'exception_class' => get_class($e),public function parseMessage(Throwable $e): stringhl# Preparation for Refi... in 47 m100% 47. • Mon 11 May 14:13:29HandleHubspotRateLimitTest v= custom.log X= laravel.log XA SF [jiminny@localhost]4 HS_local [jiminny@localhost]- console [PRODI& console lEUllA console [STAGING]Q- 429CcW.*0 results© UserAutomatedReportsController.php© PlaybackController.php(C) Hubspot/Service.pnpC) HubSpot/Service.pnpT DeleteCrmEntityTrait.php© VerifyActivityCrmTaskJob.php© RateLimitExceptionTest.php© Job.php© CrmActivityService.php© MatchCrmData.php© CrmObjectsResolver.php© ProviderRateLimiter.phpm A2 467 ×3л Vio 4 spaces ©...
|
NULL
|
-2521223258664451449
|
NULL
|
click
|
ocr
|
NULL
|
PhostormVIewINavicareCodeLaravelFV faVsco.js°9 JY- PhostormVIewINavicareCodeLaravelFV faVsco.js°9 JY-20725-handle-HS-search-rate-linProiect© BatchSyncCollectolT SyncCrmEntitiesTrait.phpC) CachedCrmServiceDecorator.onge balchsynckealsse© ClosedDealStagesS © RateLimitException.phpDealrielasservice.gc) Decorateacuiviv.or© FieldDefinitions.phrC) FieldT vpeconvertee Hubspotclientinterc) Hubspotlokenman© PayloadBuilder.phpC) RemotecrmobiectrP ResponseNormalizec) Service.onrC)SvncFieldAction.onC) SvncRelatedActivitC) WebhookSvncBatclv MintearationAorM Acceccors• D ConfigD DTO• M SiltersD Jobs. M ProspectSearchStraW sevice lraits© DataClient.php© DecorateActivity.ph(e) LocalSearch.onpu Localsearchinteria© RemoteSearch.phpc) Service.phpv _ Listeners© ConvertLeadActivitc) PurceLookuocache> M Metadata> MiarationPioedrivev Salesforce• D FieldsM OnnortunitvMatcheMOnnortunitvSvneStM ProsneetSearchStr.M ServiceTraitcC) Client nhr© DecorateActivity.ph. Delete@biectsTrait© FieldDefinitions.php© PayloadBuilder.php© Profile.php© QueryBuilder.phpTacts naccod. 12 (todav 12:02class Cllent extends Baseclient 1mpLements Hubspotclientintertace1251301401421461511531541601nubu1etunction 1shubspotrateuimithrowaole se: 000l11 $e instanceof \GuzzleHttp\Exception RequestExceptionreturn (int) $e->getCode === 429:recurn talsepubuac function parseRetrvAfterThrowable Se: 1nt1f method existsSe.qetResponseHeaders'?Sheaders = $e->getResponseHeaders() ?: []:svalue = Sheadersl'Retry-After'J ?? Sheadersl'retry-after"J ?? null;if (is arnav(Svalue)) {Svalue = Svalueldl 22 null.if (is_numeric($value)) 1return (int) $valve;Smessage = strtolower(Se->getMessageO):if (str_contains(Smessage, 'daily')) {if (str_ contains(Smessaqe, 'ten secondly')) {recurn 10-if (str_contains(Smessaqe, 'secondly')) {return 1Sthis->loa->warnina('[Hubspotl No retry-after header or known message. using default'. [l'exception_class' => get_class($e),public function parseMessage(Throwable $e): stringhl# Preparation for Refi... in 47 m100% 47. • Mon 11 May 14:13:29HandleHubspotRateLimitTest v= custom.log X= laravel.log XA SF [jiminny@localhost]4 HS_local [jiminny@localhost]- console [PRODI& console lEUllA console [STAGING]Q- 429CcW.*0 results© UserAutomatedReportsController.php© PlaybackController.php(C) Hubspot/Service.pnpC) HubSpot/Service.pnpT DeleteCrmEntityTrait.php© VerifyActivityCrmTaskJob.php© RateLimitExceptionTest.php© Job.php© CrmActivityService.php© MatchCrmData.php© CrmObjectsResolver.php© ProviderRateLimiter.phpm A2 467 ×3л Vio 4 spaces ©...
|
18366
|
NULL
|
NULL
|
NULL
|
|
18369
|
NULL
|
0
|
2026-05-11T11:13:31.484116+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778498011484_m1.jpg...
|
PhpStorm
|
faVsco.js – laravel.log
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
JY-20725-handle-HS-search Project: faVsco.js, menu
JY-20725-handle-HS-search-rate-limit, menu
Start Listening for PHP Debug Connections...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JY-20725-handle-HS-search-rate-limit, menu","depth":5,"on_screen":true,"help_text":"Git Branch: JY-20725-handle-HS-search-rate-limit","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
-817699417600123759
|
-7159315621853853246
|
click
|
hybrid
|
NULL
|
Project: faVsco.js, menu
JY-20725-handle-HS-search Project: faVsco.js, menu
JY-20725-handle-HS-search-rate-limit, menu
Start Listening for PHP Debug Connections
iTerm2ShellEditViewSessionScriptsProfilesWindowHelp$0DEV (docker)-zsh84(ab)# Preparation for Refi... in 47 m100% <8• Mon 11 May 14:13:31181DOCKER0 81DEV (docker)₴2APP (-zsh)H3worker-crm-update:worker-crm-update_00: stoppedworker-download:worker-download_00:stoppedworker-nudges:worker-nudges_00: stoppedjiminny-worker-processing-1:jiminny-worker-processing-1_00: stoppedworker-emails:worker-emails_00: stoppedworker:worker_00: stoppedworker-audio:worker-audio_00: stoppedworker-calendar:worker-calendar_00:stoppedworker-conferences:worker-conferences_00: stoppedworker-crm-sync:worker-crm-sync_00:stoppedworker-es-update:worker-es-update_00: stoppedartisan-schedule:artisan-schedule_00: stoppedartisan-schedule:artisan-schedule_00: startedjiminny-worker-processing-1:jiminny-worker-processing-1_00: startedjiminny-worker-processing-2:jiminny-worker-processing-2_00: startedjiminny-worker-processing-3:jiminny-worker-processing-3_00: startedjiminny-worker-processing-4:jiminny-worker-processing-4_00: startedjiminny-worker-processing-5:jiminny-worker-processing-5_00: startedjiminny-worker-processing-delayed: jiminny-worker-processing-delayed_00: startedworker:worker_00: startedworker-analytics:worker-analytics_00: startedworker-audio:worker-audio_00: startedworker-calendar:worker-calendar_00: startedworker-conferences:worker-conferences_00: startedworker-crm-sync:worker-crm-sync_00: startedworker-crm-update:worker-crm-update_00: startedworker-download:worker-download_00: startedworker-emails:worker-emails_00: startedworker-es-update:worker-es-update_00: startedworker-nudges:worker-nudges_00: startedroot@docker_lamp_1:/home/jiminny# php artisan jiminny: debugDispatching 100 MatchActivityCrmDatajobs (portal=2)Done.Watch logs and run jiminny:debug observeRateLimit to inspect cachestate.root@docker_lamp_1:/home/jiminny# php artisan optimize:clear && supervisorctl restart allINFOClearing cached bootstrap files.configcachecompiledeventsroutesviews-zshX5screenpipe"O ₴6-zshDEV4.18ms DONE11.06ms DONE1.84ms DONE1.32ms DONE1.43ms DONE21.19ms DONE...
|
18367
|
NULL
|
NULL
|
NULL
|
|
18370
|
NULL
|
0
|
2026-05-11T11:13:32.691682+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778498012691_m2.jpg...
|
PhpStorm
|
faVsco.js – laravel.log
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
JY-20725-handle-HS-search Project: faVsco.js, menu
JY-20725-handle-HS-search-rate-limit, menu
Start Listening for PHP Debug Connections...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"bounds":{"left":0.025930852,"top":0.019952115,"width":0.03856383,"height":0.025538707},"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JY-20725-handle-HS-search-rate-limit, menu","depth":5,"bounds":{"left":0.064494684,"top":0.019952115,"width":0.09541223,"height":0.025538707},"on_screen":true,"help_text":"Git Branch: JY-20725-handle-HS-search-rate-limit","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"bounds":{"left":0.82413566,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
-817699417600123759
|
-7159315621853853246
|
click
|
hybrid
|
NULL
|
Project: faVsco.js, menu
JY-20725-handle-HS-search Project: faVsco.js, menu
JY-20725-handle-HS-search-rate-limit, menu
Start Listening for PHP Debug Connections
PhostormVIewINavicareCodeLaravelKeractorTOOISWindowFV faVsco.js°9 JY-20725-handle-HS-search-rate-limitProiect(C) TranscodeParameterResclC UserService.onp(C) Uuid.pnp> D TraitsD UseCases> D User> D Utils› D Validation> OvOphp nelpers.ong© InitialFrontendState.php© Jiminny.phpc) Plan.oho© Serializer.phpC) TeamScimDetails.ohpbootstrap>© build.> contia→ contrio→ database>M docsM front-end>D lang> node_modules library rootM ohostan> M nublic> D resourcesv Mroutesphp api.phpphp api_v2.phppnp console.onopnp customer_api.onppnp embedded.ongphp nealtn.onppnp scim.onophp uprotectedweb.phpphp web.phpphp webhook.php>O scriptsv O storage•aoo> M debuabar.… M frameworkv Mloas.aitianore• audio wav= custom.loalT SyncCrmEntitiesTrait.phpC) CachedCrmServiceDecorator.ong© RateLimitException.php© PaginationConfia.phdclass Cllent extends Baseclient 1mpLements Hubspotclientintertace = hubspot-journal-poll.log= laravel log< nhnunit ymus tht is= oauth-nrivate kevTacts naccod. 12 (todav 12:02nubu1e1sHubspotrateLimithrowadle sel: 00011 $e instanceof \GuzzleHttp\Exception\RequestExceptionreturn (int) $e->getCode === 429:recurn talsepubuac function parseRetrvAfterThrowable Se: 1nt1f method existsSe.qetResponseheaders'?Sheaders = $e->getResponseHeaders() ?: []:svalue = Sheadersl'Retry-After'J ?? Sheadersl'retry-after"! ?? null;if (is arnav(Svalue)) {= Svaluell0l 22 nul.if (is_numeric($value)) 1return (int) $valve;Smessage = strtolower(Se->getMessageO):if (str_contains(Smessage, 'daily')) {recurn o00.if (str_ contains(Smessaqe, 'ten secondly')) {recurn 10-if (str_contains(Smessaqe, 'secondly')) {return 1Sthis->loa->warnina('[Hubspotl No retry-after header or known message. using default'. [l'exception_class' => get_class($e),public function parseMessage(Throwable $e): stringhl# Preparation for Refi... in 47 m100% Lz• Mon 11 May 14:13:32HandleHubspotRateLimitTest v= custom.log=laravel.log XA SF [jiminny@localhost]4 HS_local [jiminny@localhost]# console [PKol)& console lEUllA console [STAGING]Q- 429CcW.*0 results© UserAutomatedReportsController.php© PlaybackController.php(C) Hubspot/Service.pnpC) HubSpot/Service.pnpT DeleteCrmEntityTrait.php© VerifyActivityCrmTaskJob.php© RateLimitExceptionTest.php© Job.php© CrmActivityService.php© MatchCrmData.php© CrmObjectsResolver.php© ProviderRateLimiter.phpm A2 467 ×3л Vio 4 spaces ©...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
18371
|
794
|
0
|
2026-05-11T11:13:58.753866+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778498038753_m1.jpg...
|
PhpStorm
|
faVsco.js – laravel.log
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"on_screen":true,"is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
8043719072324535154
|
-8628527368849355612
|
click
|
hybrid
|
NULL
|
Project: faVsco.js, menu
iTerm2ShellEditViewSessio Project: faVsco.js, menu
iTerm2ShellEditViewSessionScriptsProfilesWindowHelp•DOCKER₴81DEV (docker)$2APP (-zsh)H3configcachecompiledeventsroutesviewsjiminny-worker-processing-2:jiminny-worker-processing-2_00: stoppedjiminny-worker-processing-3:jiminny-worker-processing-3_00:stoppedjiminny-worker-processing-4:Jiminny-worker-processing-4_00:stoppedjiminny-worker-processing-5:jiminny-worker-processing-5_00: stoppedjiminny-worker-processing-delayed: jiminny-worker-processing-delayed_00: stoppedworker-analytics:worker-analytics_00: stoppedworker-crm-update:worker-crm-update_00: stoppedworker-download:worker-download_00: stoppedworker-nudges:worker-nudges_00: stoppedworker:worker_00: stoppedworker-audio:worker-audio_00: stoppedworker-calendar:worker-calendar_00:stoppedworker-conferences:worker-conferences_00: stoppedworker-emails:worker-emails_00: stoppedjiminny-worker-processing-1:jiminny-worker-processing-1_00: stoppedworker-crm-sync:worker-crm-sync_00: stoppedworker-es-update:worker-es-update_00: stoppedartisan-schedule:artisan-schedule_00: stoppedartisan-schedule:artisan-schedule_00: startedjiminny-worker-processing-1:jiminny-worker-processing-1_00: startedjiminny-worker-processing-2:jiminny-worker-processing-2_00: startedjiminny-worker-processing-3:jiminny-worker-processing-3_00: startedjiminny-worker-processing-4:jiminny-worker-processing-4_00: startedjiminny-worker-processing-5:jiminny-worker-processing-5_00: startedjiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00:startedworker:worker_00: startedworker-analytics:worker-analytics_00: startedworker-audio:worker-audio_00: startedworker-calendar:worker-calendar_00: startedworker-conferences:worker-conferences_00: startedworker-crm-sync:worker-crm-sync_00:startedworker-crm-update:worker-crm-update_00: startedworker-download:worker-download_00:startedworker-emails:worker-emails_00: startedworker-es-update:worker-es-update_00: startedworker-nudges:worker-nudges_00:startedroot@docker_lamp_1:/home/jiminny# l§ Preparation for Refi... in 47 m100% <78• Mon 11 May 14:13:58181DEV (docker)-zsh84-zshX5screenpipe"O ₴64.18ms DONE11.06ms DONE1.84ms DONE1.32ms DONE1.43ms DONE21.19ms DONE-zshDEV...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
18372
|
795
|
0
|
2026-05-11T11:13:58.764214+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778498038764_m2.jpg...
|
PhpStorm
|
faVsco.js – laravel.log
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"bounds":{"left":0.025930852,"top":0.019952115,"width":0.03856383,"height":0.025538707},"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_expanded":false}]...
|
8043719072324535154
|
-8628527368849355612
|
click
|
hybrid
|
NULL
|
Project: faVsco.js, menu
PhostormVIewINavicareCode Project: faVsco.js, menu
PhostormVIewINavicareCodeLaravelKeractorTOOISWindowFV faVsco.js°9 JY-20725-handle-HS-search-rate-limitProiect v(C) TranscodeParameterResclC UserService.onp(C) Uuid.pnp> D TraitsD UseCases> D User> D Utils› D Validation> OvOphp nelpers.ong© InitialFrontendState.php© Jiminny.phpc) Plan.ohoc) serializer.onoC) TeamScimDetails.ohpbootstrap>© build.> contia→ contrio→ database>M docsM front-end>D lang> node_modules library rootM ohostan> M nublic> D resourcesv Mroutesphp api.phpphp api_v2.phppnp console.onopnp customer_api.onppnp embedded.ongphp nealtn.onppnp scim.onophp uprotectedweb.phpphp web.phpphp webhook.php>O scriptsv O storage> M debuabar.… M frameworkv Mloas.aitianoreê audio. wav= custom.loalT SyncCrmEntitiesTrait.phpC) CachedCrmServiceDecorator.ong© RateLimitException.php© PaginationConfia.phdclass Cllent extends Baseclient 1mpLements Hubspotclientintertace = hubspot-journal-poll.log= laravel log< nhnunit ymus tht is= oauth-nrivate kevTacts naccod. 12 (todav 12:02nubu1e1sHubspotrateLimithrowadle sel: 00011 $e instanceof \GuzzleHttp\Exception\RequestExceptionreturn (int) $e->getCode === 429:recurn talsepubuac function parseRetrvAfterThrowable Se: 1nt1f method existsSe.qetResponseheaders'?Sheaders = $e->getResponseHeaders() ?: []:svalue = Sheadersl'Retry-After'J ?? Sheadersl'retry-after"! ?? null;if (is arnav(Svalue)) {= Svaluell0l 22 nul.if (is_numeric($value)) 1return (int) $valve;Smessage = strtolower(Se->getMessageO):if (str_contains(Smessage, 'daily')) {recurn o00.if (str_ contains(Smessaqe, 'ten secondly')) {recurn 10-if (str_contains(Smessaqe, 'secondly')) {return 1Sthis->loa->warnina('[Hubspotl No retry-after header or known message. using default'. [l'exception_class' => get_class($e),public function parseMessage(Throwable $e): stringhl# Preparation for Refi... in 47 m100% L2• Mon 11 May 14:13:58HandleHubspotRateLimitTest v= custom.log X= laravel.log XA SF [jiminny@localhost]4 HS_local [jiminny@localhost]# console [PKol)& console (EUlA console [STAGING]Q- 429CcW.*0 results© UserAutomatedReportsController.php© PlaybackController.php(C) Hubspot/Service.pnp(C) HubSpot/Service.phpT DeleteCrmEntityTrait.php© VerifyActivityCrmTaskJob.php© RateLimitExceptionTest.php© Job.php© CrmActivityService.php© MatchCrmData.php© CrmObjectsResolver.php© ProviderRateLimiter.phpЩ72A67 V3 Aio 4 spaces ©...
|
18370
|
NULL
|
NULL
|
NULL
|
|
18373
|
794
|
1
|
2026-05-11T11:14:00.562882+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778498040562_m1.jpg...
|
PhpStorm
|
faVsco.js – laravel.log
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
iTerm2ShellEditViewSessionScriptsProfilesWindowHel iTerm2ShellEditViewSessionScriptsProfilesWindowHelp•DOCKER•₴1DEV (docker)$2APP (-zsh)H3configcachecompiledeventsroutesviewsjiminny-worker-processing-2:jiminny-worker-processing-2_00: stoppedjiminny-worker-processing-3:jiminny-worker-processing-3_00:stoppedjiminny-worker-processing-4:Jiminny-worker-processing-4_00:stoppedjiminny-worker-processing-5:jiminny-worker-processing-5_00: stoppedjiminny-worker-processing-delayed: jiminny-worker-processing-delayed_00: stoppedworker-analytics:worker-analytics_00: stoppedworker-crm-update:worker-crm-update_00: stoppedworker-download:worker-download_00: stoppedworker-nudges:worker-nudges_00: stoppedworker:worker_00: stoppedworker-audio:worker-audio_00: stoppedworker-calendar:worker-calendar_00:stoppedworker-conferences:worker-conferences_00: stoppedworker-emails:worker-emails_00: stoppedjiminny-worker-processing-1:jiminny-worker-processing-1_00: stoppedworker-crm-sync:worker-crm-sync_00: stoppedworker-es-update:worker-es-update_00: stoppedartisan-schedule:artisan-schedule_00: stoppedartisan-schedule:artisan-schedule_00: startedjiminny-worker-processing-1:jiminny-worker-processing-1_00: startedjiminny-worker-processing-2:jiminny-worker-processing-2_00: startedjiminny-worker-processing-3:jiminny-worker-processing-3_00: startedjiminny-worker-processing-4:jiminny-worker-processing-4_00: startedjiminny-worker-processing-5:jiminny-worker-processing-5_00: startedjiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00:startedworker:worker_00: startedworker-analytics:worker-analytics_00: startedworker-audio:worker-audio_00: startedworker-calendar:worker-calendar_00: startedworker-conferences:worker-conferences_00: startedworker-crm-sync:worker-crm-sync_00:startedworker-crm-update:worker-crm-update_00: startedworker-download:worker-download_00:startedworker-emails:worker-emails_00: startedworker-es-update:worker-es-update_00: startedworker-nudges:worker-nudges_00:startedroot@docker_lamp_1:/home/jiminny# l§ Preparation for Refi... in 47 m100% <78• Mon 11 May 14:14:00181DEV (docker)-zsh84-zshX5screenpipe"O ₴64.18ms DONE11.06ms DONE1.84ms DONE1.32ms DONE1.43ms DONE21.19ms DONE-zshDEV...
|
NULL
|
7243955147746834117
|
NULL
|
click
|
ocr
|
NULL
|
iTerm2ShellEditViewSessionScriptsProfilesWindowHel iTerm2ShellEditViewSessionScriptsProfilesWindowHelp•DOCKER•₴1DEV (docker)$2APP (-zsh)H3configcachecompiledeventsroutesviewsjiminny-worker-processing-2:jiminny-worker-processing-2_00: stoppedjiminny-worker-processing-3:jiminny-worker-processing-3_00:stoppedjiminny-worker-processing-4:Jiminny-worker-processing-4_00:stoppedjiminny-worker-processing-5:jiminny-worker-processing-5_00: stoppedjiminny-worker-processing-delayed: jiminny-worker-processing-delayed_00: stoppedworker-analytics:worker-analytics_00: stoppedworker-crm-update:worker-crm-update_00: stoppedworker-download:worker-download_00: stoppedworker-nudges:worker-nudges_00: stoppedworker:worker_00: stoppedworker-audio:worker-audio_00: stoppedworker-calendar:worker-calendar_00:stoppedworker-conferences:worker-conferences_00: stoppedworker-emails:worker-emails_00: stoppedjiminny-worker-processing-1:jiminny-worker-processing-1_00: stoppedworker-crm-sync:worker-crm-sync_00: stoppedworker-es-update:worker-es-update_00: stoppedartisan-schedule:artisan-schedule_00: stoppedartisan-schedule:artisan-schedule_00: startedjiminny-worker-processing-1:jiminny-worker-processing-1_00: startedjiminny-worker-processing-2:jiminny-worker-processing-2_00: startedjiminny-worker-processing-3:jiminny-worker-processing-3_00: startedjiminny-worker-processing-4:jiminny-worker-processing-4_00: startedjiminny-worker-processing-5:jiminny-worker-processing-5_00: startedjiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00:startedworker:worker_00: startedworker-analytics:worker-analytics_00: startedworker-audio:worker-audio_00: startedworker-calendar:worker-calendar_00: startedworker-conferences:worker-conferences_00: startedworker-crm-sync:worker-crm-sync_00:startedworker-crm-update:worker-crm-update_00: startedworker-download:worker-download_00:startedworker-emails:worker-emails_00: startedworker-es-update:worker-es-update_00: startedworker-nudges:worker-nudges_00:startedroot@docker_lamp_1:/home/jiminny# l§ Preparation for Refi... in 47 m100% <78• Mon 11 May 14:14:00181DEV (docker)-zsh84-zshX5screenpipe"O ₴64.18ms DONE11.06ms DONE1.84ms DONE1.32ms DONE1.43ms DONE21.19ms DONE-zshDEV...
|
18371
|
NULL
|
NULL
|
NULL
|
|
18374
|
795
|
1
|
2026-05-11T11:14:02.133968+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778498042133_m2.jpg...
|
PhpStorm
|
faVsco.js – laravel.log
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
PhostormVIewINavicareCodeLaravelKeractorTOOISWindo PhostormVIewINavicareCodeLaravelKeractorTOOISWindowFV faVsco.js°9 JY-20725-handle-HS-search-rate-limitProiect v(C) TranscodeParameterResclT SyncCrmEntitiesTrait.phpC UserService.pnp(C) Uuid.pnp> D TraitsD UseCases> D User> D Utils› D Validation> OvOphp nelpers.ong© InitialFrontendState.php© Jiminny.phpc) Plan.ohoc) serializer.onoC) TeamScimDetails.ohpbootstrap>© build.> contia→ contrio→ database>M docsfront-end>D lang> node_modules library rootM ohostan> M nublic> D resourcesv Mroutesphp api.phpphp api_v2.phppnp console.onopnp customer_api.onppnp embedded.ongphp nealtn.onppnp scim.onophp uprotectedweb.phpphp web.phpphp webhook.php>O scriptsv O storage> M debuabar.… M frameworkv Mloas.aitianore• audio wav= custom.loalC) CachedCrmServiceDecorator.ongDeleteCrmEntityTrait.php© RateLimitException.php© PaginationConfia.phdclass Cllent extends Baseclient 1mpLements Hubspotclientintertace = hubspot-journal-poll.log= laravel log< nhnunit ymus tht is= oauth-nrivate kevTacts naccod. 12 (todav 12:02nubu1etunction 1shubspotrateuimithrowable sel: 000l11 $e instanceof \GuzzleHttp\Exception\RequestExceptionreturn (int) $e->getCode === 429:recurn talsepubunc function parseRetrvAfter(Throwable Se: 1nt1f method existsSe.qetResponseheaders'?Sheaders = $e->getResponseHeaders() ?: []:svalue = Sheadens|"Retrv-Aften' ? Sheadens"retrv-aften' ? nul..if (is arnav(Svalue)) {= Svaluell0l 22 nul.if (is_numeric($value)) 1return (int) $valve;Smessage = strtolower(Se->getMessageO):if (str_contains(Smessage, 'daily')) {recurn o00.if (str_ contains(Smessaqe, 'ten secondly')) {recurn 10-if (str_ contains(Smessaqe, 'secondly')) {return 1Sthis->loa->warnina('[Hubspotl No retry-after header or known message. using default'. [l'exception_class' => get_class($e),public function parseMessage(Throwable $e): string(c) HubSpot/Service.onpA2 A67 X3 ^5187=103=104=105—106_ 108=116—119— 128E123• Preparation tor kell.... In 40 mMon 11 May 14:14:01A console [EUiconsole [STAGINGI=laravel.logA SF [jiminny@localhost2026-05-11 11:15:47 Local.ERRUR: SoC1ALACCoUntServicel Fa1led t2026-05-11 11:15:47 Local.INFU: Soc1aLAccountUbserver2026-05-11 11:15:47 Local.ERROR:2026-05-11 11:15:4711[2026-05-11 11:13:47] local.INF0: [SocialAccountServicel Token needs refreshing {12026-05-11 11:15:47 LocoLNF0:EncrvotediiokenranagerL2026-05-11 11:15:47 Local.INFU: LSoc1aLAccountservicel Refreshing12026-05-1111915PLVA 1OCUERRORASocial AccountServicel Failed to nefresh token "social Accountd"*B7A, "noviden": "offic[2026-05-11 11:13:47) local.INFO: [SocialAccountObserver) Saving moc2026-05-11 11:13:471 LocaL,ERROR: SocialAccountServicel Failed to refresh token «"social.[2026-05-11 11:13:47) local.INFO: [SocialAccountService] Fetching token 1"social[2026-05-11 11:13:47) local.INF0: [SocialAccountService][2026-05-11 11:13:47) local.INFO: [EncryptedTokenManager] Generating acc[2026-05-11 11:13:47] local.INF0: [SocialAccountService] Refreshing toke[2026-05-11 11:13:48] local.ERROR: [SocialAccountService] Failed to re[2026-05-11 11:13:48] local.INF0: [SocialAccount0bserver] Saving mod[2026-05-11 11:13:48] local.ERROR: [SocialAccountServicel Failed to refre[2026-05-11 11:13:48] local.INF0: [SocialAccountService] Fetching token[2026-05-11 11:13:48] local.INF0: [SocialAccountService] Token needs refreshing -[2026-05-11 11:13:48] local.INF0: [EncryptedTokenManager] Generating access tok[2026-05-11 11:13:48] local.INF0: [SocialAccountServicel Refreshing tok12020-00-11 11.10.40 LocaL.INrU. SOC1aLACCOUnLUDserver savino mode[2026-05-11 11:13:48] local.INF0: [SocialAccount0bserver] Access2026-05-11 11:15:49 Local.INFU: SoC1ALACCoUntServicel loken retreshed2026-05-11 11:15:49 Local.LNFU: Calendar sync 70b dispatched "ca2026-05-11 11:15:49 Local.INFU: SoC1aLACCoUntService retch12026-05-11 11:15:49 Local.INFU: SoC1aLACCoUntService loken12026-05-11 11115:491 LocoL.INFU: EnCr12026-05-11 11115:491 LocolINFi: SociaLAccountService Retreshino2026-05-11 11:13:49 LocaL, ERROR:[SocialAccountServicel Failed2026-05-11 11:13:491 LocoL.INF0: SocialAccount0bserver Savina mod2026-05-11 11:13:491 LocaL, ERROR:So12026-05-11 11:13:491 LocoL,INF0:SocialAccountServicell12026-05-11 11:13:491 Local1NS0:SocialAccountServi.cel12026-05-11 11:13:491 LocaLJNS0: EncrvntedtokenManaden)|[2026-05-11 11:13:49] Local.INF0: [SocialAccountService] Refreshing12026-05-11 11•13:491 locol ERROR•SocialAccountServicel Farled to nefrech token «"socie[2026-05-11 11:13:49] local.INF0: [SocialAccount0bserver] Saving mode12026-05-11 11•13•491 locol ERROR• [SocialAccountServicel Failed to nefrech token «"social[2026-05-11 11:13:49] local.INF0: [SocialAccountService] Fetching token {"socialAccountId":1352,'12024-05-11 11•17:401 Jocol TNSh• [SocialAccountConvicol Token noode nofnochina &icocialAccoun+tdi:1752[2026-05-11 11:13:49] Local. INFO: [EncryptedTokenManager]Generating access token. {"[2026-05-11 11:13:49] local.INF0: [Soci[2026-05-11 11:13:49] local.ERROR: [So[2026-05-11 11:13:49] local.INF0: [SocialAci[2026-05-11 11:13:49] local.ERROR: [Social[2026-05-11 11:13:49] local.INF0: [SocialAccountSe[2026-05-11 11:13:49] local.INF0: [SocialAcco[2026-05-11 11:13:49] local.INF0: [EncryptedTokenMan[2006-05-11 11-13:401 1ocql INF0: [SocialAccountServicel Refreshing tokerrror": "inval...
|
NULL
|
5383065438988021045
|
NULL
|
visual_change
|
ocr
|
NULL
|
PhostormVIewINavicareCodeLaravelKeractorTOOISWindo PhostormVIewINavicareCodeLaravelKeractorTOOISWindowFV faVsco.js°9 JY-20725-handle-HS-search-rate-limitProiect v(C) TranscodeParameterResclT SyncCrmEntitiesTrait.phpC UserService.pnp(C) Uuid.pnp> D TraitsD UseCases> D User> D Utils› D Validation> OvOphp nelpers.ong© InitialFrontendState.php© Jiminny.phpc) Plan.ohoc) serializer.onoC) TeamScimDetails.ohpbootstrap>© build.> contia→ contrio→ database>M docsfront-end>D lang> node_modules library rootM ohostan> M nublic> D resourcesv Mroutesphp api.phpphp api_v2.phppnp console.onopnp customer_api.onppnp embedded.ongphp nealtn.onppnp scim.onophp uprotectedweb.phpphp web.phpphp webhook.php>O scriptsv O storage> M debuabar.… M frameworkv Mloas.aitianore• audio wav= custom.loalC) CachedCrmServiceDecorator.ongDeleteCrmEntityTrait.php© RateLimitException.php© PaginationConfia.phdclass Cllent extends Baseclient 1mpLements Hubspotclientintertace = hubspot-journal-poll.log= laravel log< nhnunit ymus tht is= oauth-nrivate kevTacts naccod. 12 (todav 12:02nubu1etunction 1shubspotrateuimithrowable sel: 000l11 $e instanceof \GuzzleHttp\Exception\RequestExceptionreturn (int) $e->getCode === 429:recurn talsepubunc function parseRetrvAfter(Throwable Se: 1nt1f method existsSe.qetResponseheaders'?Sheaders = $e->getResponseHeaders() ?: []:svalue = Sheadens|"Retrv-Aften' ? Sheadens"retrv-aften' ? nul..if (is arnav(Svalue)) {= Svaluell0l 22 nul.if (is_numeric($value)) 1return (int) $valve;Smessage = strtolower(Se->getMessageO):if (str_contains(Smessage, 'daily')) {recurn o00.if (str_ contains(Smessaqe, 'ten secondly')) {recurn 10-if (str_ contains(Smessaqe, 'secondly')) {return 1Sthis->loa->warnina('[Hubspotl No retry-after header or known message. using default'. [l'exception_class' => get_class($e),public function parseMessage(Throwable $e): string(c) HubSpot/Service.onpA2 A67 X3 ^5187=103=104=105—106_ 108=116—119— 128E123• Preparation tor kell.... In 40 mMon 11 May 14:14:01A console [EUiconsole [STAGINGI=laravel.logA SF [jiminny@localhost2026-05-11 11:15:47 Local.ERRUR: SoC1ALACCoUntServicel Fa1led t2026-05-11 11:15:47 Local.INFU: Soc1aLAccountUbserver2026-05-11 11:15:47 Local.ERROR:2026-05-11 11:15:4711[2026-05-11 11:13:47] local.INF0: [SocialAccountServicel Token needs refreshing {12026-05-11 11:15:47 LocoLNF0:EncrvotediiokenranagerL2026-05-11 11:15:47 Local.INFU: LSoc1aLAccountservicel Refreshing12026-05-1111915PLVA 1OCUERRORASocial AccountServicel Failed to nefresh token "social Accountd"*B7A, "noviden": "offic[2026-05-11 11:13:47) local.INFO: [SocialAccountObserver) Saving moc2026-05-11 11:13:471 LocaL,ERROR: SocialAccountServicel Failed to refresh token «"social.[2026-05-11 11:13:47) local.INFO: [SocialAccountService] Fetching token 1"social[2026-05-11 11:13:47) local.INF0: [SocialAccountService][2026-05-11 11:13:47) local.INFO: [EncryptedTokenManager] Generating acc[2026-05-11 11:13:47] local.INF0: [SocialAccountService] Refreshing toke[2026-05-11 11:13:48] local.ERROR: [SocialAccountService] Failed to re[2026-05-11 11:13:48] local.INF0: [SocialAccount0bserver] Saving mod[2026-05-11 11:13:48] local.ERROR: [SocialAccountServicel Failed to refre[2026-05-11 11:13:48] local.INF0: [SocialAccountService] Fetching token[2026-05-11 11:13:48] local.INF0: [SocialAccountService] Token needs refreshing -[2026-05-11 11:13:48] local.INF0: [EncryptedTokenManager] Generating access tok[2026-05-11 11:13:48] local.INF0: [SocialAccountServicel Refreshing tok12020-00-11 11.10.40 LocaL.INrU. SOC1aLACCOUnLUDserver savino mode[2026-05-11 11:13:48] local.INF0: [SocialAccount0bserver] Access2026-05-11 11:15:49 Local.INFU: SoC1ALACCoUntServicel loken retreshed2026-05-11 11:15:49 Local.LNFU: Calendar sync 70b dispatched "ca2026-05-11 11:15:49 Local.INFU: SoC1aLACCoUntService retch12026-05-11 11:15:49 Local.INFU: SoC1aLACCoUntService loken12026-05-11 11115:491 LocoL.INFU: EnCr12026-05-11 11115:491 LocolINFi: SociaLAccountService Retreshino2026-05-11 11:13:49 LocaL, ERROR:[SocialAccountServicel Failed2026-05-11 11:13:491 LocoL.INF0: SocialAccount0bserver Savina mod2026-05-11 11:13:491 LocaL, ERROR:So12026-05-11 11:13:491 LocoL,INF0:SocialAccountServicell12026-05-11 11:13:491 Local1NS0:SocialAccountServi.cel12026-05-11 11:13:491 LocaLJNS0: EncrvntedtokenManaden)|[2026-05-11 11:13:49] Local.INF0: [SocialAccountService] Refreshing12026-05-11 11•13:491 locol ERROR•SocialAccountServicel Farled to nefrech token «"socie[2026-05-11 11:13:49] local.INF0: [SocialAccount0bserver] Saving mode12026-05-11 11•13•491 locol ERROR• [SocialAccountServicel Failed to nefrech token «"social[2026-05-11 11:13:49] local.INF0: [SocialAccountService] Fetching token {"socialAccountId":1352,'12024-05-11 11•17:401 Jocol TNSh• [SocialAccountConvicol Token noode nofnochina &icocialAccoun+tdi:1752[2026-05-11 11:13:49] Local. INFO: [EncryptedTokenManager]Generating access token. {"[2026-05-11 11:13:49] local.INF0: [Soci[2026-05-11 11:13:49] local.ERROR: [So[2026-05-11 11:13:49] local.INF0: [SocialAci[2026-05-11 11:13:49] local.ERROR: [Social[2026-05-11 11:13:49] local.INF0: [SocialAccountSe[2026-05-11 11:13:49] local.INF0: [SocialAcco[2026-05-11 11:13:49] local.INF0: [EncryptedTokenMan[2006-05-11 11-13:401 1ocql INF0: [SocialAccountServicel Refreshing tokerrror": "inval...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
18376
|
794
|
2
|
2026-05-11T11:14:05.386807+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778498045386_m1.jpg...
|
PhpStorm
|
faVsco.js – custom.log
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
iTerm2ShellEditViewSessionScriptsProfilesWindowHel iTerm2ShellEditViewSessionScriptsProfilesWindowHelp•DOCKER•₴1DEV (docker)$2APP (-zsh)H3configcachecompiledeventsroutesviewsjiminny-worker-processing-2:jiminny-worker-processing-2_00: stoppedjiminny-worker-processing-3:jiminny-worker-processing-3_00:stoppedjiminny-worker-processing-4:jiminny-worker-processing-4_00:stoppedjiminny-worker-processing-5:jiminny-worker-processing-5_00: stoppedjiminny-worker-processing-delayed: jiminny-worker-processing-delayed_00: stoppedworker-analytics:worker-analytics_00: stoppedworker-crm-update:worker-crm-update_00: stoppedworker-download:worker-download_00: stoppedworker-nudges:worker-nudges_00: stoppedworker:worker_00: stoppedworker-audio:worker-audio_00: stoppedworker-calendar:worker-calendar_00:stoppedworker-conferences:worker-conferences_00: stoppedworker-emails:worker-emails_00: stoppedjiminny-worker-processing-1:jiminny-worker-processing-1_00: stoppedworker-crm-sync:worker-crm-sync_00: stoppedworker-es-update:worker-es-update_00: stoppedartisan-schedule:artisan-schedule_00: stoppedartisan-schedule:artisan-schedule_00: startedjiminny-worker-processing-1:jiminny-worker-processing-1_00: startedjiminny-worker-processing-2:jiminny-worker-processing-2_00: startedjiminny-worker-processing-3:jiminny-worker-processing-3_00: startedjiminny-worker-processing-4:jiminny-worker-processing-4_00: startedjiminny-worker-processing-5:jiminny-worker-processing-5_00: startedjiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00:startedworker:worker_00: startedworker-analytics:worker-analytics_00: startedworker-audio:worker-audio_00: startedworker-calendar:worker-calendar_00: startedworker-conferences:worker-conferences_00: startedworker-crm-sync:worker-crm-sync_00:startedworker-crm-update:worker-crm-update_00: startedworker-download:worker-download_00:startedworker-emails:worker-emails_00: startedworker-es-update:worker-es-update_00: startedworker-nudges:worker-nudges_00:startedroot@docker_lamp_1:/home/jiminny# lPreparation for Refi... in 46 m100% <8• Mon 11 May 14:14:05181DEV (docker)-zsh84-zshX5ffmpeg₴86-zsh4.18ms DONE11.06ms DONE1.84ms DONE1.32ms DONE1.43ms DONE21.19ms DONEDEV...
|
NULL
|
-6134784862721072886
|
NULL
|
click
|
ocr
|
NULL
|
iTerm2ShellEditViewSessionScriptsProfilesWindowHel iTerm2ShellEditViewSessionScriptsProfilesWindowHelp•DOCKER•₴1DEV (docker)$2APP (-zsh)H3configcachecompiledeventsroutesviewsjiminny-worker-processing-2:jiminny-worker-processing-2_00: stoppedjiminny-worker-processing-3:jiminny-worker-processing-3_00:stoppedjiminny-worker-processing-4:jiminny-worker-processing-4_00:stoppedjiminny-worker-processing-5:jiminny-worker-processing-5_00: stoppedjiminny-worker-processing-delayed: jiminny-worker-processing-delayed_00: stoppedworker-analytics:worker-analytics_00: stoppedworker-crm-update:worker-crm-update_00: stoppedworker-download:worker-download_00: stoppedworker-nudges:worker-nudges_00: stoppedworker:worker_00: stoppedworker-audio:worker-audio_00: stoppedworker-calendar:worker-calendar_00:stoppedworker-conferences:worker-conferences_00: stoppedworker-emails:worker-emails_00: stoppedjiminny-worker-processing-1:jiminny-worker-processing-1_00: stoppedworker-crm-sync:worker-crm-sync_00: stoppedworker-es-update:worker-es-update_00: stoppedartisan-schedule:artisan-schedule_00: stoppedartisan-schedule:artisan-schedule_00: startedjiminny-worker-processing-1:jiminny-worker-processing-1_00: startedjiminny-worker-processing-2:jiminny-worker-processing-2_00: startedjiminny-worker-processing-3:jiminny-worker-processing-3_00: startedjiminny-worker-processing-4:jiminny-worker-processing-4_00: startedjiminny-worker-processing-5:jiminny-worker-processing-5_00: startedjiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00:startedworker:worker_00: startedworker-analytics:worker-analytics_00: startedworker-audio:worker-audio_00: startedworker-calendar:worker-calendar_00: startedworker-conferences:worker-conferences_00: startedworker-crm-sync:worker-crm-sync_00:startedworker-crm-update:worker-crm-update_00: startedworker-download:worker-download_00:startedworker-emails:worker-emails_00: startedworker-es-update:worker-es-update_00: startedworker-nudges:worker-nudges_00:startedroot@docker_lamp_1:/home/jiminny# lPreparation for Refi... in 46 m100% <8• Mon 11 May 14:14:05181DEV (docker)-zsh84-zshX5ffmpeg₴86-zsh4.18ms DONE11.06ms DONE1.84ms DONE1.32ms DONE1.43ms DONE21.19ms DONEDEV...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
18381
|
794
|
4
|
2026-05-11T11:14:22.417517+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778498062417_m1.jpg...
|
PhpStorm
|
faVsco.js – custom.log
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
iTerm2ShellEditViewSessionScriptsProfilesWindowHel iTerm2ShellEditViewSessionScriptsProfilesWindowHelp• 0DOCKERconfigcachecompiledeventsroutesviewsO ₴1DEV (docker)$2APP (-zsh)H3jiminny-worker-processing-2:jiminny-worker-processing-2_00: stoppedjiminny-worker-processing-3:jiminny-worker-processing-3_00: stoppedjiminny-worker-processing-4:jiminny-worker-processing-4_00:stoppedjiminny-worker-processing-5:jiminny-worker-processing-5_00:stoppedjiminny-worker-processing-delayed: jiminny-worker-processing-delayed_00: stoppedworker-analytics:worker-analytics_00: stoppedworker-crm-update:worker-crm-update_00:stoppedworker-download:worker-download_00:stoppedworker-nudges:worker-nudges_00: stoppedworker:worker_00: stoppedworker-audio:worker-audio_00: stoppedworker-calendar:worker-calendar_00: stoppedworker-conferences:worker-conferences_00: stoppedworker-emails:worker-emails_00:stoppedjiminny-worker-processing-1:jiminny-worker-processing-1_00: stoppedworker-crm-sync:worker-crm-sync_00: stoppedworker-es-update:worker-es-update_00: stoppedartisan-schedule:artisan-schedule_00: stoppedartisan-schedule:artisan-schedule_00: startedjiminny-worker-processing-1:jiminny-worker-processing-1_00: startedjiminny-worker-processing-2:jiminny-worker-processing-2_00: startedjiminny-worker-processing-3:jiminny-worker-processing-3_00: startedjiminny-worker-processing-4:jiminny-worker-processing-4_00: startedjiminny-worker-processing-5:jiminny-worker-processing-5_00: startedjiminny-worker-processing-delayed: jiminny-worker-processing-delayed_00: startedworker:worker_00: startedworker-analytics:worker-analytics_00: startedworker-audio:worker-audio_00: startedworker-calendar:worker-calendar_00: startedworker-conferences:worker-conferences_00: startedworker-crm-sync:worker-crm-sync_00: startedworker-crm-update:worker-crm-update_00: startedworker-download:worker-download_00:startedworker-emails:worker-emails_00: startedworker-es-update:worker-es-update_00:startedworker-nudges:worker-nudges_00: startedroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debugPreparation for Refi... in 46 m100% <78• Mon 11 May 14:14:22181DEV (docker)-zsh84-zshX5ffmpeg7864.18ms DONE11.06ms DONE1.84ms DONE1.32ms DONE1.43ms DONE21.19ms DONE-zshDEV...
|
NULL
|
2516844599759596242
|
NULL
|
visual_change
|
ocr
|
NULL
|
iTerm2ShellEditViewSessionScriptsProfilesWindowHel iTerm2ShellEditViewSessionScriptsProfilesWindowHelp• 0DOCKERconfigcachecompiledeventsroutesviewsO ₴1DEV (docker)$2APP (-zsh)H3jiminny-worker-processing-2:jiminny-worker-processing-2_00: stoppedjiminny-worker-processing-3:jiminny-worker-processing-3_00: stoppedjiminny-worker-processing-4:jiminny-worker-processing-4_00:stoppedjiminny-worker-processing-5:jiminny-worker-processing-5_00:stoppedjiminny-worker-processing-delayed: jiminny-worker-processing-delayed_00: stoppedworker-analytics:worker-analytics_00: stoppedworker-crm-update:worker-crm-update_00:stoppedworker-download:worker-download_00:stoppedworker-nudges:worker-nudges_00: stoppedworker:worker_00: stoppedworker-audio:worker-audio_00: stoppedworker-calendar:worker-calendar_00: stoppedworker-conferences:worker-conferences_00: stoppedworker-emails:worker-emails_00:stoppedjiminny-worker-processing-1:jiminny-worker-processing-1_00: stoppedworker-crm-sync:worker-crm-sync_00: stoppedworker-es-update:worker-es-update_00: stoppedartisan-schedule:artisan-schedule_00: stoppedartisan-schedule:artisan-schedule_00: startedjiminny-worker-processing-1:jiminny-worker-processing-1_00: startedjiminny-worker-processing-2:jiminny-worker-processing-2_00: startedjiminny-worker-processing-3:jiminny-worker-processing-3_00: startedjiminny-worker-processing-4:jiminny-worker-processing-4_00: startedjiminny-worker-processing-5:jiminny-worker-processing-5_00: startedjiminny-worker-processing-delayed: jiminny-worker-processing-delayed_00: startedworker:worker_00: startedworker-analytics:worker-analytics_00: startedworker-audio:worker-audio_00: startedworker-calendar:worker-calendar_00: startedworker-conferences:worker-conferences_00: startedworker-crm-sync:worker-crm-sync_00: startedworker-crm-update:worker-crm-update_00: startedworker-download:worker-download_00:startedworker-emails:worker-emails_00: startedworker-es-update:worker-es-update_00:startedworker-nudges:worker-nudges_00: startedroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debugPreparation for Refi... in 46 m100% <78• Mon 11 May 14:14:22181DEV (docker)-zsh84-zshX5ffmpeg7864.18ms DONE11.06ms DONE1.84ms DONE1.32ms DONE1.43ms DONE21.19ms DONE-zshDEV...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
18382
|
795
|
6
|
2026-05-11T11:14:22.930828+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778498062930_m2.jpg...
|
PhpStorm
|
faVsco.js – custom.log
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
PhostormVIewINavicareCodeLaravelKeractorTOOISWindo PhostormVIewINavicareCodeLaravelKeractorTOOISWindowFV faVsco.js?9 JY-20725-handle-HS-search-rate-limitProiect(C) TranscodeParameterResclT SyncCrmEntitiesTrait.phpC UserService.pnp(C) Uuid.pnp> D TraitsD UseCases> D User> D Utils› D Validation> OvOphp nelpers.ong© InitialFrontendState.php© Jiminny.phpc) Plan.ohoc) serializer.onoC) TeamScimDetails.ohpbootstrap>© build.> contia→ contrio→ database>M docsfront-end>D lang> node_modules library rootM ohostan> M nublic> D resourcesv Mroutesphp api.phpphp api_v2.phppnp console.onopnp customer_api.onppnp embedded.ongphp nealtn.onppnp scim.onophp uprotectedweb.phpphp web.phpphp webhook.php>O scriptsv O storage> M debuabar.… M frameworkv Mloas.aitianoreê audio. wav= custom.loalC) CachedCrmServiceDecorator.ong© RateLimitException.php© PaginationConfia.phdclass Cllent extends Baseclient 1mpLements Hubspotclientintertace = hubspot-journal-poll.log= laravel log< nhnunit ymus tht is= oauth-nrivate kevTacts naccod. 12 (todav 12:02nubu1e1sHubspotrateLimithrowable Se: 00011 $e instanceof \GuzzleHttp\Exception\RequestExceptionreturn (int) $e->getCode === 429:recurn talsepubuac function parseRetrvAfterThrowable Se: 1nt1f method existsSe.qetResponseheaders'?Sheaders = $e->getResponseHeaders() ?: []:svalue = Sheadens|"Retrv-Aften' ? Sheadens'retrv-aften' ?? nuueif (is arnav(Svalue)) {= Svaluell0l 22 nul.if (is_numeric($value)) 1return (int) $valve;Smessage = strtolower(Se->getMessage):if (str_contains(Smessage, 'daily')) {recurn o00.if (str_ contains(Smessaqe, 'ten secondly')) {recurn 10-if (str_ contains(Smessaqe, 'secondly')) {return 1Sthis->loa->warnina('[Hubspotl No retry-after header or known message. using default'. [l'exception_class' => get_class($e),public function parseMessage(Throwable $e): stringoveryaeuvitycrmlaskJoo.pnp(c) HubSpot/Service.onp© ProviderkateLimiter.phpм A2 A67 ×3 ^T mIm T$0hel"Preparation tor kell... In 40m100% LzP• Mon 11 May 14:14:22HandleHubspotRateLimiclestv# console [PKobJ& console lEUllconsole [STAGINGIw.19AA SF [jiminny@localhost]A ho_local Uiminny@localnost[2026-05-07 14:21:15] local.INF0: [Hubspot] DEBUG Getting headers {"Date":["Thu,07 May 2026 14:21:15 GMT"],"Lontent-lype". applicacion/son charser=uut-on"CF-Ray": ["9f80deb8db60dc3a-SOF"],"CF-Cache-Status":"DYNAMIC""Strict-Transport-Security":["max-aqе=31536000: includeSubDomains: preload"]."server-timing": ["hcid;desc=\"019e02d0-6fd8-7812-bdba-885b7ccb3ee3\",cfn:desc="9r80deb8ercodcsa-JAD""."x-content-type-options": ["nosniff"],"x-hubsoot-correlation-id":"019e02d0-6fd8-7812-bdba-885b7cch3ee3")"Set-Cookie":["__cf_bm=SIUrtdQgXVrik50pdqF6hZVYKhzTnQBidvMabeCtm0Y-1778163675-[IP_ADDRESS]-rI.ZggtDKxTge5zr8_2gbBfWMQQ.ufZẸXDZyHz2mBUFdzdo2gTHEs0kXMSẸShjK®hGYxNhUdomain=.hubapi.com; Http0nly; Secure; SameSite=None"],\"url\":\"https:|VAV/a.nel.cloudflare.com\V/report\V/v4?s=NYAlsVTP0fYm32qrSDjxYE4sd2RWRqiSp3wHsmdEgZlzoYdxI%2BIxVpHmsKn30%2BKVA3mFIJ2m7YRECDGSM%2BW2IYTz06FM4%2I\"max_age\":604800}"],INFI"•T"S"success_fraction\":0.01,l"nenont to ": "cf-nel",\"max_age\":604800}"]"Server": ["cloudflare"]}} {"correlation_id":"95236535-ec98-4541-b92a-adfa73b69eab"."trace_id":"c7ab8365-903f-46d4-9403-0e5b551e3545"}W Windsurf Teams 25:27 UTF-8 fo 4 spaces ®...
|
NULL
|
7964597321377188731
|
NULL
|
click
|
ocr
|
NULL
|
PhostormVIewINavicareCodeLaravelKeractorTOOISWindo PhostormVIewINavicareCodeLaravelKeractorTOOISWindowFV faVsco.js?9 JY-20725-handle-HS-search-rate-limitProiect(C) TranscodeParameterResclT SyncCrmEntitiesTrait.phpC UserService.pnp(C) Uuid.pnp> D TraitsD UseCases> D User> D Utils› D Validation> OvOphp nelpers.ong© InitialFrontendState.php© Jiminny.phpc) Plan.ohoc) serializer.onoC) TeamScimDetails.ohpbootstrap>© build.> contia→ contrio→ database>M docsfront-end>D lang> node_modules library rootM ohostan> M nublic> D resourcesv Mroutesphp api.phpphp api_v2.phppnp console.onopnp customer_api.onppnp embedded.ongphp nealtn.onppnp scim.onophp uprotectedweb.phpphp web.phpphp webhook.php>O scriptsv O storage> M debuabar.… M frameworkv Mloas.aitianoreê audio. wav= custom.loalC) CachedCrmServiceDecorator.ong© RateLimitException.php© PaginationConfia.phdclass Cllent extends Baseclient 1mpLements Hubspotclientintertace = hubspot-journal-poll.log= laravel log< nhnunit ymus tht is= oauth-nrivate kevTacts naccod. 12 (todav 12:02nubu1e1sHubspotrateLimithrowable Se: 00011 $e instanceof \GuzzleHttp\Exception\RequestExceptionreturn (int) $e->getCode === 429:recurn talsepubuac function parseRetrvAfterThrowable Se: 1nt1f method existsSe.qetResponseheaders'?Sheaders = $e->getResponseHeaders() ?: []:svalue = Sheadens|"Retrv-Aften' ? Sheadens'retrv-aften' ?? nuueif (is arnav(Svalue)) {= Svaluell0l 22 nul.if (is_numeric($value)) 1return (int) $valve;Smessage = strtolower(Se->getMessage):if (str_contains(Smessage, 'daily')) {recurn o00.if (str_ contains(Smessaqe, 'ten secondly')) {recurn 10-if (str_ contains(Smessaqe, 'secondly')) {return 1Sthis->loa->warnina('[Hubspotl No retry-after header or known message. using default'. [l'exception_class' => get_class($e),public function parseMessage(Throwable $e): stringoveryaeuvitycrmlaskJoo.pnp(c) HubSpot/Service.onp© ProviderkateLimiter.phpм A2 A67 ×3 ^T mIm T$0hel"Preparation tor kell... In 40m100% LzP• Mon 11 May 14:14:22HandleHubspotRateLimiclestv# console [PKobJ& console lEUllconsole [STAGINGIw.19AA SF [jiminny@localhost]A ho_local Uiminny@localnost[2026-05-07 14:21:15] local.INF0: [Hubspot] DEBUG Getting headers {"Date":["Thu,07 May 2026 14:21:15 GMT"],"Lontent-lype". applicacion/son charser=uut-on"CF-Ray": ["9f80deb8db60dc3a-SOF"],"CF-Cache-Status":"DYNAMIC""Strict-Transport-Security":["max-aqе=31536000: includeSubDomains: preload"]."server-timing": ["hcid;desc=\"019e02d0-6fd8-7812-bdba-885b7ccb3ee3\",cfn:desc="9r80deb8ercodcsa-JAD""."x-content-type-options": ["nosniff"],"x-hubsoot-correlation-id":"019e02d0-6fd8-7812-bdba-885b7cch3ee3")"Set-Cookie":["__cf_bm=SIUrtdQgXVrik50pdqF6hZVYKhzTnQBidvMabeCtm0Y-1778163675-[IP_ADDRESS]-rI.ZggtDKxTge5zr8_2gbBfWMQQ.ufZẸXDZyHz2mBUFdzdo2gTHEs0kXMSẸShjK®hGYxNhUdomain=.hubapi.com; Http0nly; Secure; SameSite=None"],\"url\":\"https:|VAV/a.nel.cloudflare.com\V/report\V/v4?s=NYAlsVTP0fYm32qrSDjxYE4sd2RWRqiSp3wHsmdEgZlzoYdxI%2BIxVpHmsKn30%2BKVA3mFIJ2m7YRECDGSM%2BW2IYTz06FM4%2I\"max_age\":604800}"],INFI"•T"S"success_fraction\":0.01,l"nenont to ": "cf-nel",\"max_age\":604800}"]"Server": ["cloudflare"]}} {"correlation_id":"95236535-ec98-4541-b92a-adfa73b69eab"."trace_id":"c7ab8365-903f-46d4-9403-0e5b551e3545"}W Windsurf Teams 25:27 UTF-8 fo 4 spaces ®...
|
18380
|
NULL
|
NULL
|
NULL
|
|
18383
|
795
|
7
|
2026-05-11T11:14:28.398031+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778498068398_m2.jpg...
|
PhpStorm
|
faVsco.js – laravel.log
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
PhostormVIewINavicareCodeLaravelKeractorTOOISWindo PhostormVIewINavicareCodeLaravelKeractorTOOISWindowFV faVsco.js?9 JY-20725-handle-HS-search-rate-limitProiect v(C) TranscodeParameterResclC UserService.onp(C) Uuid.pnp> D TraitsD UseCases> D User> D Utils› D Validation> OvOphp nelpers.ong© InitialFrontendState.php© Jiminny.phpc) Plan.ohoc) serializer.onoC) TeamScimDetails.ohpbootstrap>© build.> contia→ contrio→ database>M docsM front-end>D lang> node_modules library rootM ohostan> M nublic> D resourcesv Mroutesphp api.phpphp api_v2.phppnp console.onopnp customer_api.onppnp embedded.ongphp nealtn.onppnp scim.onophp uprotectedweb.phpphp web.phpphp webhook.php>O scriptsv O storage> M debuabar.… M frameworkv Mloas.aitianoreê audio. wav= custom.loalT SyncCrmEntitiesTrait.phpC) CachedCrmServiceDecorator.ong© RateLimitException.php© PaginationConfia.phdclass Cllent extends Baseclient 1mpLements Hubspotclientintertace = hubspot-journal-poll.log= laravel log< nhnunit ymus tht is= oauth-nrivate kevTacts naccod. 12 (todav 12:02nubu1e1sHubspotrateLimithrowadle sel: 00011 $e instanceof \GuzzleHttp\Exception\RequestExceptionreturn (int) $e->getCode === 429:recurn talsepubuac function parseRetrvAfterThrowable Se: 1nt1f method existsSe.qetResponseheaders'?Sheaders = $e->getResponseHeaders() ?: [];svalue = Sheadersl'Retry-After'J ?? Sheadersl'retry-after"! ?? null;if (is arnav(Svalue)) {= Svaluell0l 22 nul.if (is_numeric($value)) 1return (int) $valve;Smessage = strtolower(Se->getMessageO):if (str_contains(Smessage, 'daily')) {recurn o00.if (str_ contains(Smessaqe, 'ten secondly')) {recurn 10-if (str_contains(Smessaqe, 'secondly')) {return 1Sthis->loa->warnina('[Hubspotl No retry-after header or known message. using default'. [l'exception_class' => get_class($e),public function parseMessage(Throwable $e): string40hel" Preparation tor kell.... In 40 m100% L2• Mon 11 May 14:14:28HandleHubspotRateLimitTest v= custom.log=laravel.log XA SF [jiminny@localhost]4 HS_local [jiminny@localhost]# console [PKol)& console (EUlA console [STAGING]Q- 429CcW.*0 results© UserAutomatedReportsController.php© PlaybackController.php(C) Hubspot/Service.pnpC) HubSpot/Service.pnpT DeleteCrmEntityTrait.php© VerifyActivityCrmTaskJob.php© RateLimitExceptionTest.php© Job.php© CrmActivityService.php© MatchCrmData.php© CrmObjectsResolver.php© ProviderRateLimiter.phpm A2 467 ×3л Vio 4 spaces ©...
|
NULL
|
-1698118097331336929
|
NULL
|
visual_change
|
ocr
|
NULL
|
PhostormVIewINavicareCodeLaravelKeractorTOOISWindo PhostormVIewINavicareCodeLaravelKeractorTOOISWindowFV faVsco.js?9 JY-20725-handle-HS-search-rate-limitProiect v(C) TranscodeParameterResclC UserService.onp(C) Uuid.pnp> D TraitsD UseCases> D User> D Utils› D Validation> OvOphp nelpers.ong© InitialFrontendState.php© Jiminny.phpc) Plan.ohoc) serializer.onoC) TeamScimDetails.ohpbootstrap>© build.> contia→ contrio→ database>M docsM front-end>D lang> node_modules library rootM ohostan> M nublic> D resourcesv Mroutesphp api.phpphp api_v2.phppnp console.onopnp customer_api.onppnp embedded.ongphp nealtn.onppnp scim.onophp uprotectedweb.phpphp web.phpphp webhook.php>O scriptsv O storage> M debuabar.… M frameworkv Mloas.aitianoreê audio. wav= custom.loalT SyncCrmEntitiesTrait.phpC) CachedCrmServiceDecorator.ong© RateLimitException.php© PaginationConfia.phdclass Cllent extends Baseclient 1mpLements Hubspotclientintertace = hubspot-journal-poll.log= laravel log< nhnunit ymus tht is= oauth-nrivate kevTacts naccod. 12 (todav 12:02nubu1e1sHubspotrateLimithrowadle sel: 00011 $e instanceof \GuzzleHttp\Exception\RequestExceptionreturn (int) $e->getCode === 429:recurn talsepubuac function parseRetrvAfterThrowable Se: 1nt1f method existsSe.qetResponseheaders'?Sheaders = $e->getResponseHeaders() ?: [];svalue = Sheadersl'Retry-After'J ?? Sheadersl'retry-after"! ?? null;if (is arnav(Svalue)) {= Svaluell0l 22 nul.if (is_numeric($value)) 1return (int) $valve;Smessage = strtolower(Se->getMessageO):if (str_contains(Smessage, 'daily')) {recurn o00.if (str_ contains(Smessaqe, 'ten secondly')) {recurn 10-if (str_contains(Smessaqe, 'secondly')) {return 1Sthis->loa->warnina('[Hubspotl No retry-after header or known message. using default'. [l'exception_class' => get_class($e),public function parseMessage(Throwable $e): string40hel" Preparation tor kell.... In 40 m100% L2• Mon 11 May 14:14:28HandleHubspotRateLimitTest v= custom.log=laravel.log XA SF [jiminny@localhost]4 HS_local [jiminny@localhost]# console [PKol)& console (EUlA console [STAGING]Q- 429CcW.*0 results© UserAutomatedReportsController.php© PlaybackController.php(C) Hubspot/Service.pnpC) HubSpot/Service.pnpT DeleteCrmEntityTrait.php© VerifyActivityCrmTaskJob.php© RateLimitExceptionTest.php© Job.php© CrmActivityService.php© MatchCrmData.php© CrmObjectsResolver.php© ProviderRateLimiter.phpm A2 467 ×3л Vio 4 spaces ©...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
18384
|
794
|
5
|
2026-05-11T11:14:34.893570+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778498074893_m1.jpg...
|
PhpStorm
|
faVsco.js – laravel.log
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
iTerm2ShellEditViewSessionScriptsProfilesWindowHel iTerm2ShellEditViewSessionScriptsProfilesWindowHelp• •DOCKERconfigcachecompiledeventsroutesviews•₴1DEV (docker)$2APP (-zsh)H3jiminny-worker-processing-2:jiminny-worker-processing-2_00: stoppedjiminny-worker-processing-3:jiminny-worker-processing-3_00: stoppedjiminny-worker-processing-4:jiminny-worker-processing-4_00:stoppedjiminny-worker-processing-5:jiminny-worker-processing-5_00:stoppedjiminny-worker-processing-delayed: jiminny-worker-processing-delayed_00: stoppedworker-analytics:worker-analytics_00: stoppedworker-crm-update:worker-crm-update_00:stoppedworker-download:worker-download_00:stoppedworker-nudges:worker-nudges_00: stoppedworker:worker_00: stoppedworker-audio:worker-audio_00: stoppedworker-calendar:worker-calendar_00: stoppedworker-conferences:worker-conferences_00: stoppedworker-emails:worker-emails_00:stoppedjiminny-worker-processing-1:jiminny-worker-processing-1_00: stoppedworker-crm-sync:worker-crm-sync_00: stoppedworker-es-update:worker-es-update_00: stoppedartisan-schedule:artisan-schedule_00: stoppedartisan-schedule:artisan-schedule_00: startedjiminny-worker-processing-1:jiminny-worker-processing-1_00: startedjiminny-worker-processing-2:jiminny-worker-processing-2_00: startedjiminny-worker-processing-3:jiminny-worker-processing-3_00: startedjiminny-worker-processing-4:jiminny-worker-processing-4_00: startedjiminny-worker-processing-5:jiminny-worker-processing-5_00: startedjiminny-worker-processing-delayed: jiminny-worker-processing-delayed_00: startedworker:worker_00: startedworker-analytics:worker-analytics_00: startedworker-audio:worker-audio_00: startedworker-calendar:worker-calendar_00: startedworker-conferences:worker-conferences_00: startedworker-crm-sync:worker-crm-sync_00: startedworker-crm-update:worker-crm-update_00: startedworker-download:worker-download_00:startedworker-emails:worker-emails_00: startedworker-es-update:worker-es-update_00:startedworker-nudges:worker-nudges_00: startedroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debugPreparation for Refi... in 46 m100% <78• Mon 11 May 14:14:34181DEV (docker)-zsh84-zshX5screenpipe"O ₴64.18ms DONE11.06ms DONE1.84ms DONE1.32ms DONE1.43ms DONE21.19ms DONE-zshDEV...
|
NULL
|
4758633501676140914
|
NULL
|
click
|
ocr
|
NULL
|
iTerm2ShellEditViewSessionScriptsProfilesWindowHel iTerm2ShellEditViewSessionScriptsProfilesWindowHelp• •DOCKERconfigcachecompiledeventsroutesviews•₴1DEV (docker)$2APP (-zsh)H3jiminny-worker-processing-2:jiminny-worker-processing-2_00: stoppedjiminny-worker-processing-3:jiminny-worker-processing-3_00: stoppedjiminny-worker-processing-4:jiminny-worker-processing-4_00:stoppedjiminny-worker-processing-5:jiminny-worker-processing-5_00:stoppedjiminny-worker-processing-delayed: jiminny-worker-processing-delayed_00: stoppedworker-analytics:worker-analytics_00: stoppedworker-crm-update:worker-crm-update_00:stoppedworker-download:worker-download_00:stoppedworker-nudges:worker-nudges_00: stoppedworker:worker_00: stoppedworker-audio:worker-audio_00: stoppedworker-calendar:worker-calendar_00: stoppedworker-conferences:worker-conferences_00: stoppedworker-emails:worker-emails_00:stoppedjiminny-worker-processing-1:jiminny-worker-processing-1_00: stoppedworker-crm-sync:worker-crm-sync_00: stoppedworker-es-update:worker-es-update_00: stoppedartisan-schedule:artisan-schedule_00: stoppedartisan-schedule:artisan-schedule_00: startedjiminny-worker-processing-1:jiminny-worker-processing-1_00: startedjiminny-worker-processing-2:jiminny-worker-processing-2_00: startedjiminny-worker-processing-3:jiminny-worker-processing-3_00: startedjiminny-worker-processing-4:jiminny-worker-processing-4_00: startedjiminny-worker-processing-5:jiminny-worker-processing-5_00: startedjiminny-worker-processing-delayed: jiminny-worker-processing-delayed_00: startedworker:worker_00: startedworker-analytics:worker-analytics_00: startedworker-audio:worker-audio_00: startedworker-calendar:worker-calendar_00: startedworker-conferences:worker-conferences_00: startedworker-crm-sync:worker-crm-sync_00: startedworker-crm-update:worker-crm-update_00: startedworker-download:worker-download_00:startedworker-emails:worker-emails_00: startedworker-es-update:worker-es-update_00:startedworker-nudges:worker-nudges_00: startedroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debugPreparation for Refi... in 46 m100% <78• Mon 11 May 14:14:34181DEV (docker)-zsh84-zshX5screenpipe"O ₴64.18ms DONE11.06ms DONE1.84ms DONE1.32ms DONE1.43ms DONE21.19ms DONE-zshDEV...
|
18381
|
NULL
|
NULL
|
NULL
|
|
18385
|
795
|
8
|
2026-05-11T11:14:34.921623+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778498074921_m2.jpg...
|
PhpStorm
|
faVsco.js – custom.log
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
PhostormVIewINavicareCodeLaravelKeractorTOOISWindo PhostormVIewINavicareCodeLaravelKeractorTOOISWindowFV faVsco.js?9 JY-20725-handle-HS-search-rate-limitProiect v(C) TranscodeParameterResclC UserService.pnp(C) Uuid.pnp> D TraitsD UseCases> D User> D Utils› D Validation> OvOphp nelpers.ong© InitialFrontendState.php© Jiminny.phpc) Plan.ohoc) serializer.onoC) TeamScimDetails.ohpbootstrap>© build.> contia→ contrio→ database>M docsfront-end>D lang> node_modules library rootM ohostan> M nublic> D resourcesv Mroutesphp api.phpphp api_v2.phppnp console.onopnp customer_api.onppnp embedded.ongphp nealtn.onppnp scim.onophp uprotectedweb.phpphp web.phpphp webhook.php>O scriptsv O storage> M debuabar.… M frameworkv Mloas.aitianoreê audio. wav= custom.loalT SyncCrmEntitiesTrait.phpC) CachedCrmServiceDecorator.ong© RateLimitException.php© PaginationConfia.phdclass Cllent extends Baseclient 1mpLements Hubspotclientintertace = hubspot-journal-poll.log= laravel log< nhnunit ymus tht is= oauth-nrivate kevTacts naccod. 12 (todav 12:02nubu1e1sHubspotrateLimithrowadle sel: 00011 $e instanceof \GuzzleHttp\Exception\RequestExceptionreturn (int) $e->getCode === 429:recurn talsepubuac function parseRetrvAfterThrowable Se: 1nt1f method existsSe.qetResponseheaders'?Sheaders = $e->getResponseHeaders() ?: [];svalue = Sheadersl'Retry-After'J ?? Sheadersl'retry-after"! ?? null;if (is arnav(Svalue)) {= Svaluell0l 22 nul.if (is_numeric($value)) 1return (int) $valve;Smessage = strtolower(Se->getMessageO):if (str_contains(Smessage, 'daily')) {recurn o00.if (str_ contains(Smessaqe, 'ten secondly')) {recurn 10-if (str_contains(Smessaqe, 'secondly')) {return 1Sthis->loa->warnina('[Hubspotl No retry-after header or known message. using default'. [l'exception_class' => get_class($e),public function parseMessage(Throwable $e): string40hel" Preparation tor kell.... In 40 m100% Lz• Mon 11 May 14:14:34HandleHubspotRateLimitTest v= custom.log X = laravel.log XA SF [jiminny@localhost]4 HS_local [jiminny@localhost]# console [PKol)& console lEUllA console [STAGING]Q- 429CcW.*0 results© UserAutomatedReportsController.php© PlaybackController.php(C) Hubspot/Service.pnpC) HubSpot/Service.pnpT DeleteCrmEntityTrait.php© VerifyActivityCrmTaskJob.php© RateLimitExceptionTest.php© Job.php© CrmActivityService.php© MatchCrmData.php© CrmObjectsResolver.php© ProviderRateLimiter.phpЩ72A67 V3 Aio 4 spaces ©...
|
NULL
|
3811985675375933008
|
NULL
|
click
|
ocr
|
NULL
|
PhostormVIewINavicareCodeLaravelKeractorTOOISWindo PhostormVIewINavicareCodeLaravelKeractorTOOISWindowFV faVsco.js?9 JY-20725-handle-HS-search-rate-limitProiect v(C) TranscodeParameterResclC UserService.pnp(C) Uuid.pnp> D TraitsD UseCases> D User> D Utils› D Validation> OvOphp nelpers.ong© InitialFrontendState.php© Jiminny.phpc) Plan.ohoc) serializer.onoC) TeamScimDetails.ohpbootstrap>© build.> contia→ contrio→ database>M docsfront-end>D lang> node_modules library rootM ohostan> M nublic> D resourcesv Mroutesphp api.phpphp api_v2.phppnp console.onopnp customer_api.onppnp embedded.ongphp nealtn.onppnp scim.onophp uprotectedweb.phpphp web.phpphp webhook.php>O scriptsv O storage> M debuabar.… M frameworkv Mloas.aitianoreê audio. wav= custom.loalT SyncCrmEntitiesTrait.phpC) CachedCrmServiceDecorator.ong© RateLimitException.php© PaginationConfia.phdclass Cllent extends Baseclient 1mpLements Hubspotclientintertace = hubspot-journal-poll.log= laravel log< nhnunit ymus tht is= oauth-nrivate kevTacts naccod. 12 (todav 12:02nubu1e1sHubspotrateLimithrowadle sel: 00011 $e instanceof \GuzzleHttp\Exception\RequestExceptionreturn (int) $e->getCode === 429:recurn talsepubuac function parseRetrvAfterThrowable Se: 1nt1f method existsSe.qetResponseheaders'?Sheaders = $e->getResponseHeaders() ?: [];svalue = Sheadersl'Retry-After'J ?? Sheadersl'retry-after"! ?? null;if (is arnav(Svalue)) {= Svaluell0l 22 nul.if (is_numeric($value)) 1return (int) $valve;Smessage = strtolower(Se->getMessageO):if (str_contains(Smessage, 'daily')) {recurn o00.if (str_ contains(Smessaqe, 'ten secondly')) {recurn 10-if (str_contains(Smessaqe, 'secondly')) {return 1Sthis->loa->warnina('[Hubspotl No retry-after header or known message. using default'. [l'exception_class' => get_class($e),public function parseMessage(Throwable $e): string40hel" Preparation tor kell.... In 40 m100% Lz• Mon 11 May 14:14:34HandleHubspotRateLimitTest v= custom.log X = laravel.log XA SF [jiminny@localhost]4 HS_local [jiminny@localhost]# console [PKol)& console lEUllA console [STAGING]Q- 429CcW.*0 results© UserAutomatedReportsController.php© PlaybackController.php(C) Hubspot/Service.pnpC) HubSpot/Service.pnpT DeleteCrmEntityTrait.php© VerifyActivityCrmTaskJob.php© RateLimitExceptionTest.php© Job.php© CrmActivityService.php© MatchCrmData.php© CrmObjectsResolver.php© ProviderRateLimiter.phpЩ72A67 V3 Aio 4 spaces ©...
|
18383
|
NULL
|
NULL
|
NULL
|
|
18386
|
794
|
6
|
2026-05-11T11:14:38.268528+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778498078268_m1.jpg...
|
PhpStorm
|
faVsco.js – laravel.log
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
JY-20725-handle-HS-search Project: faVsco.js, menu
JY-20725-handle-HS-search-rate-limit, menu
Start Listening for PHP Debug Connections...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JY-20725-handle-HS-search-rate-limit, menu","depth":5,"on_screen":true,"help_text":"Git Branch: JY-20725-handle-HS-search-rate-limit","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
-817699417600123759
|
-7159315621853853246
|
click
|
hybrid
|
NULL
|
Project: faVsco.js, menu
JY-20725-handle-HS-search Project: faVsco.js, menu
JY-20725-handle-HS-search-rate-limit, menu
Start Listening for PHP Debug Connections
iTerm2ShellEditViewSessionScriptsProfilesWindowHelp• •DOCKERconfigcachecompiledeventsroutesviews•₴1DEV (docker)$2APP (-zsh)H3jiminny-worker-processing-2:jiminny-worker-processing-2_00: stoppedjiminny-worker-processing-3:jiminny-worker-processing-3_00: stoppedjiminny-worker-processing-4:jiminny-worker-processing-4_00:stoppedjiminny-worker-processing-5:jiminny-worker-processing-5_00:stoppedjiminny-worker-processing-delayed: jiminny-worker-processing-delayed_00: stoppedworker-analytics:worker-analytics_00: stoppedworker-crm-update:worker-crm-update_00:stoppedworker-download:worker-download_00:stoppedworker-nudges:worker-nudges_00: stoppedworker:worker_00: stoppedworker-audio:worker-audio_00: stoppedworker-calendar:worker-calendar_00: stoppedworker-conferences:worker-conferences_00: stoppedworker-emails:worker-emails_00:stoppedjiminny-worker-processing-1:jiminny-worker-processing-1_00: stoppedworker-crm-sync:worker-crm-sync_00: stoppedworker-es-update:worker-es-update_00: stoppedartisan-schedule:artisan-schedule_00: stoppedartisan-schedule:artisan-schedule_00: startedjiminny-worker-processing-1:jiminny-worker-processing-1_00: startedjiminny-worker-processing-2:jiminny-worker-processing-2_00: startedjiminny-worker-processing-3:jiminny-worker-processing-3_00: startedjiminny-worker-processing-4:jiminny-worker-processing-4_00: startedjiminny-worker-processing-5:jiminny-worker-processing-5_00: startedjiminny-worker-processing-delayed: jiminny-worker-processing-delayed_00: startedworker:worker_00: startedworker-analytics:worker-analytics_00: startedworker-audio:worker-audio_00: startedworker-calendar:worker-calendar_00: startedworker-conferences:worker-conferences_00: startedworker-crm-sync:worker-crm-sync_00: startedworker-crm-update:worker-crm-update_00: startedworker-download:worker-download_00:startedworker-emails:worker-emails_00: startedworker-es-update:worker-es-update_00:startedworker-nudges:worker-nudges_00: startedroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debugPreparation for Refi... in 46 m100% <78• Mon 11 May 14:14:37181DEV (docker)-zsh84-zshX5screenpipe"4.18ms DONE11.06ms DONE1.84ms DONE1.32ms DONE1.43ms DONE21.19ms DONE-zsh+DEV...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
18387
|
795
|
9
|
2026-05-11T11:14:40.409942+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778498080409_m2.jpg...
|
PhpStorm
|
faVsco.js – SF [jiminny@localhost]
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
JY-20725-handle-HS-search Project: faVsco.js, menu
JY-20725-handle-HS-search-rate-limit, menu...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"bounds":{"left":0.025930852,"top":0.019952115,"width":0.03856383,"height":0.025538707},"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JY-20725-handle-HS-search-rate-limit, menu","depth":5,"bounds":{"left":0.064494684,"top":0.019952115,"width":0.09541223,"height":0.025538707},"on_screen":true,"help_text":"Git Branch: JY-20725-handle-HS-search-rate-limit","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
-5641617897080429754
|
-8160223333407913180
|
click
|
hybrid
|
NULL
|
Project: faVsco.js, menu
JY-20725-handle-HS-search Project: faVsco.js, menu
JY-20725-handle-HS-search-rate-limit, menu
PhostormVIewINavicareCodeLaravelKeractorFV faVsco.js?9 JY-20725-handle-HS-search-rate-limitProiect v=.env.qa=.env.root=.env.staging=.gitattributes.gitignore=.php-cs-fixer.cachephp.php-cs-fixer.dist.phpT SyncCrmEntitiesTrait.phpC) CachedCrmServiceDecorator.ong©) HandleHub© RateLimitException.php© PaginationConfia.phdclass Cllent extends Baseclient 1mpLements Hubspotclientintertacepnp.onpstorm.meta.pnpE.phpunit.result.cacheE.prettierignoreE.windsurfrulesphplde nelper.ohgphpldenelpermodels.ono125php aruisan& composer.ison127composer.lockdependencv-checker.isondev.isonEids.txt=intection.ison.distMIINSTALL.mdMIINTERNAL WEBHOOK SETUP nliminny storadeMtlicenses.mdM Makefilenackade-lock iconE phpstan.neon.dist= nhnstan-haceline neon137<)> phpunit.xml12 raw sol query.so,MLPEADME md< sonar-project.properties= test.py‹> Untitled Diagram.XmiJs vetur.config.isMIWERHOOK CIL TEDING IMDICM147> ih External Librariesv E Scratches and Consolesv @ Database Consoles149V AEU151Aconsole IEUliA DEAL RISKS (EU1DITEUTAEU (EUT155v diminnv@localhostiDi lliminnv@localhostHS local tiiminnvalocalhe#Ss timinnvolocalhostlA zoho dev fiiminnvGlocallv A pron# concole [pRonllTacts naccod. 12 (todav 12:02nubu1etunction 1shubspotrateuimithrowable sel: 000l11 $e instanceof \GuzzleHttp\Exception\RequestExceptionreturn (int) $e->getCode === 429:recurn talsepubunc function parseRetrvAfter(Throwable Se: 1nt1f method existsSe.qetResponseheaders'?Sheaders = $e->getResponseHeaders() ?: []:svalue = Sheadersl'Retry-After'J ?? Sheadersl'retry-after"J ?? null;if (is arnav(Svalue)) {Svalue = Svalueldl 22 null.if (is_numeric($value)) 1return (int) $value;Smessage = strtolower(Se->getMessageO):if (str_contains(Smessage, 'daily')) {recurn o00.if (str_ contains(Smessaqe, 'ten secondly')) {recurn 10if (str_contains(Smessaqe, 'secondly')) {return 1Sthis->loa->warnina('[Hubspotl No retry-after header or known message, usina default'. [l'exception_class' => get_class($e),public function parseMessage(Throwable $e): stringOhuospot/serwice.onpProviderkateLimiter.phg÷ | A2 A67 X3 ^ v 1571158159161165166— 167169169176=179—17417617818018121=182=183=184—185186_ 187188— 196192=193≤19519728E292$0hel"Preparation tor kell... In 40 m100% L2• Mon 11 May 14:14:40HandlenubspotkateLimiclest v# console [PKol)A console leu)A console [STAGING]So jiminnyu Analyzing... ^ vf ho_local Uiminny@localnostPlaygroundselect * trom teams where 10 = 1elect * from users where team_id = 1;select * from team_features where team_id = 1:select * trom features:SELECT * FROM activity_searches where 1d = 1982; # 1981SELECT * FROM activity search filters WHERE activity search 1d = 1982SELECT * FROM activities WIERE uuid to bind'e9165696-086c-40d1-94d7-5e3802c27ccfD = vuid:SELECT * FROM groups WHERE id = 1439;SELECT * FROM Users WHERE group_id = 1439;select * from permissions; # 158select * from roles;select * from permission_role;select * from teams where id = 1;select * from groups g JOIN playbooks p 1..n<->1: on g.playbook_id = p.id where g.team_id = 1;select * from groups where id = 28;select * from playbooks where team id = 1:select * from playbooks where id = 179:select * from playbook categories where id = 1391;select * from users where id = 143:select * from crm profiles where user id = 143:select * from activities where crm confiquration id = 39 and type = 'conference'and crm_provider id IS NOT NULL ORDER by id descselect * from activities where id = 422003: # 00U04000000B6foMAC|SELECT ar.id, ar.uuid, ar.media type, ar.status, a.typeFROM automated report results anJOIN automated_reports a ON a.id = ar.repontidWHERE a.type = 'ask_jiminny'LTMIT 1OSSELECT * FROM automated_reports where id = 71;SELECT * FROM automated_report_results where report id = 71;UPDATE automated_reports set playbook_categories = NULL where id = 68;SELECT * EROM automated nenont resultslwhere id = 275;SELECT * FROM automated_reports order by id desc;SELECT * FROM automated_report_results order by id desc;colert + fnom activitv coanchoc wheno ucon id = 142.select * from ask anything prompts:SELECT 'automated report results'.* FROMTNNEP I0TM 'automatod nononteiautomated_report resultsautomated report results'. 'report id' = 'automated_reports'.'idUuee 1=1automated report results'. 'generated at' TS NOT NULLWN Windsurf Toams 201-1 UTF.R4 spaces O...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
18388
|
795
|
10
|
2026-05-11T11:14:44.898903+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778498084898_m2.jpg...
|
PhpStorm
|
faVsco.js – laravel.log
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
JY-20725-handle-HS-search Project: faVsco.js, menu
JY-20725-handle-HS-search-rate-limit, menu
Start Listening for PHP Debug Connections
HandleHubspotRateLimitTest
Run 'HandleHubspotRateLimitTest'
Debug 'HandleHubspotRateLimitTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"bounds":{"left":0.025930852,"top":0.019952115,"width":0.03856383,"height":0.025538707},"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JY-20725-handle-HS-search-rate-limit, menu","depth":5,"bounds":{"left":0.064494684,"top":0.019952115,"width":0.09541223,"height":0.025538707},"on_screen":true,"help_text":"Git Branch: JY-20725-handle-HS-search-rate-limit","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"bounds":{"left":0.82413566,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"HandleHubspotRateLimitTest","depth":6,"bounds":{"left":0.8394282,"top":0.019952115,"width":0.076130316,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'HandleHubspotRateLimitTest'","depth":6,"bounds":{"left":0.9155585,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Debug 'HandleHubspotRateLimitTest'","depth":6,"bounds":{"left":0.9268617,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More Actions","depth":6,"bounds":{"left":0.9381649,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JetBrains AI","depth":5,"bounds":{"left":0.96609044,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Search Everywhere","depth":5,"bounds":{"left":0.9773936,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"IDE and Project Settings","depth":5,"bounds":{"left":0.9886968,"top":0.019952115,"width":0.011303186,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
8956692732016058251
|
-8204340751569409078
|
visual_change
|
hybrid
|
NULL
|
Project: faVsco.js, menu
JY-20725-handle-HS-search Project: faVsco.js, menu
JY-20725-handle-HS-search-rate-limit, menu
Start Listening for PHP Debug Connections
HandleHubspotRateLimitTest
Run 'HandleHubspotRateLimitTest'
Debug 'HandleHubspotRateLimitTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
PhostormVIewINavicareCodeLaravelFV faVsco.js°9 JY-20725-handle-HS-search-rate-limiProiect v= custom.logT SyncCrmEntitiesTrait.phpC) CachedCrmServiceDecorator.ong= nuospor-lournal-poll.logch HandleHn<)> phpunit.xm© RateLimitException.phpis ttt.jsE oauth-private.key© PaginationConfia.phdE oauth-public.kevclass Cllent extends Baseclient 1mpLements HubspotclientintertaceE storageE supervisord.pid121text-relav.isonv w tests> Featurelintearation123124125u Servicesv 7UniN ComoonentN Confiauration130iM ConcoleiM ContractsIDTOD EnumsD EventsD ExceptionsTm Crmi©) EmailActivityImportExcw HandlerTlest.pnp© RateLimitExceptionTesC fixturesGuardsW Helpersm) HttoIntearationsinteractionsaHobs> ActivitvM AiAutomation> Audidv AutomatedReportsc CreateResultsTest.lc RequestGenerateAC) RequestGenerateR,C) SendRenortEynirincC) SendRenort lohTec© SendReportMailJobC SendRenortNotGenTm Cnlondarm CrmlM nonlDicke• MMailbayTacts naccod. 12 (todav 12:02nubu1etunction 1shubspotrateuimithrowaole se: 000l11 $e instanceof \GuzzleHttp\Exception RequestExceptionreturn (int) $e->getCode === 429:recurn talsepubuac function parseRetrvAfterThrowable Se: 1nt1f method existsSe.qetResponseheaders'?Sheaders = $e->getResponseHeaders() ?: []:svalue = Sheadersl'Retry-After'J ?? Sheadersl'retry-after"J ?? null;if (is arnav(Svalue)) {Svaluel0l 22 null.if (is_numeric($value)) 1return (int) $valve;Smessage = strtolower(Se->getMessageO):if (str_contains(Smessage, 'daily')) {recurn o00.if (str_ contains(Smessaqe, 'ten secondly')) {recurn 101if (str_contains(Smessaqe, 'secondly')) {return 1Sthis->loa->warnina('[Hubspotl No retry-after header or known message. using default'. [l'exception_class' => get_class($e),public function parseMessage(Throwable $e): string$0hel" Preparation tor kell.... In 40 m100% C47 • Mon 11 May 14:14:44HandleHubspotRateLimitTest v= custom.log=laravel.log X 4 SF jiminny@localhost]4 HS_local [jiminny@localhost]# console [PKol)& console (EUlA console [STAGING]Q- 429~/jiminny/app/storage/logs/laravel.log*0 results© UserAutomatedReportsController.php© PlaybackController.php(C) Hubspot/Service.pnp(c) HubSpot/Service.onpT DeleteCrmEntityTrait.php© VerifyActivityCrmTaskJob.php© RateLimitExceptionTest.php© MatchActivityCrmData.php© Job.php© CrmActivityService.php© MatchCrmData.php© CrmObjectsResolver.php© ProviderRateLimiter.phpm A2 467 ×3 ^io 4 spaces ©...
|
18387
|
NULL
|
NULL
|
NULL
|
|
18389
|
794
|
7
|
2026-05-11T11:14:47.918052+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778498087918_m1.jpg...
|
PhpStorm
|
faVsco.js – custom.log
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
iTerm2ShellEditViewSessionScriptsProfilesWindowHel iTerm2ShellEditViewSessionScriptsProfilesWindowHelp• •DOCKERconfigcachecompiledeventsroutesviews₴81DEV (docker)$2APP (-zsh)H3jiminny-worker-processing-2:jiminny-worker-processing-2_00: stoppedjiminny-worker-processing-3:jiminny-worker-processing-3_00: stoppedjiminny-worker-processing-4:jiminny-worker-processing-4_00:stoppedjiminny-worker-processing-5:jiminny-worker-processing-5_00:stoppedjiminny-worker-processing-delayed: jiminny-worker-processing-delayed_00: stoppedworker-analytics:worker-analytics_00: stoppedworker-crm-update:worker-crm-update_00:stoppedworker-download:worker-download_00:stoppedworker-nudges:worker-nudges_00: stoppedworker:worker_00: stoppedworker-audio:worker-audio_00: stoppedworker-calendar:worker-calendar_00: stoppedworker-conferences:worker-conferences_00: stoppedworker-emails:worker-emails_00:stoppedjiminny-worker-processing-1:jiminny-worker-processing-1_00: stoppedworker-crm-sync:worker-crm-sync_00: stoppedworker-es-update:worker-es-update_00: stoppedartisan-schedule:artisan-schedule_00: stoppedartisan-schedule:artisan-schedule_00: startedjiminny-worker-processing-1:jiminny-worker-processing-1_00: startedjiminny-worker-processing-2:jiminny-worker-processing-2_00: startedjiminny-worker-processing-3:jiminny-worker-processing-3_00: startedjiminny-worker-processing-4:jiminny-worker-processing-4_00: startedjiminny-worker-processing-5:jiminny-worker-processing-5_00: startedjiminny-worker-processing-delayed: jiminny-worker-processing-delayed_00: startedworker:worker_00: startedworker-analytics:worker-analytics_00: startedworker-audio:worker-audio_00: startedworker-calendar:worker-calendar_00: startedworker-conferences:worker-conferences_00: startedworker-crm-sync:worker-crm-sync_00: startedworker-crm-update:worker-crm-update_00: startedworker-download:worker-download_00:startedworker-emails:worker-emails_00: startedworker-es-update:worker-es-update_00:startedworker-nudges:worker-nudges_00: startedroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debugPreparation for Refi... in 46 m100%8• Mon 11 May 14:14:47181DEV (docker)-zsh84-zshX5screenpipe"O ₴64.18ms DONE11.06ms DONE1.84ms DONE1.32ms DONE1.43ms DONE21.19ms DONE-zshDEV...
|
NULL
|
601274781961808895
|
NULL
|
click
|
ocr
|
NULL
|
iTerm2ShellEditViewSessionScriptsProfilesWindowHel iTerm2ShellEditViewSessionScriptsProfilesWindowHelp• •DOCKERconfigcachecompiledeventsroutesviews₴81DEV (docker)$2APP (-zsh)H3jiminny-worker-processing-2:jiminny-worker-processing-2_00: stoppedjiminny-worker-processing-3:jiminny-worker-processing-3_00: stoppedjiminny-worker-processing-4:jiminny-worker-processing-4_00:stoppedjiminny-worker-processing-5:jiminny-worker-processing-5_00:stoppedjiminny-worker-processing-delayed: jiminny-worker-processing-delayed_00: stoppedworker-analytics:worker-analytics_00: stoppedworker-crm-update:worker-crm-update_00:stoppedworker-download:worker-download_00:stoppedworker-nudges:worker-nudges_00: stoppedworker:worker_00: stoppedworker-audio:worker-audio_00: stoppedworker-calendar:worker-calendar_00: stoppedworker-conferences:worker-conferences_00: stoppedworker-emails:worker-emails_00:stoppedjiminny-worker-processing-1:jiminny-worker-processing-1_00: stoppedworker-crm-sync:worker-crm-sync_00: stoppedworker-es-update:worker-es-update_00: stoppedartisan-schedule:artisan-schedule_00: stoppedartisan-schedule:artisan-schedule_00: startedjiminny-worker-processing-1:jiminny-worker-processing-1_00: startedjiminny-worker-processing-2:jiminny-worker-processing-2_00: startedjiminny-worker-processing-3:jiminny-worker-processing-3_00: startedjiminny-worker-processing-4:jiminny-worker-processing-4_00: startedjiminny-worker-processing-5:jiminny-worker-processing-5_00: startedjiminny-worker-processing-delayed: jiminny-worker-processing-delayed_00: startedworker:worker_00: startedworker-analytics:worker-analytics_00: startedworker-audio:worker-audio_00: startedworker-calendar:worker-calendar_00: startedworker-conferences:worker-conferences_00: startedworker-crm-sync:worker-crm-sync_00: startedworker-crm-update:worker-crm-update_00: startedworker-download:worker-download_00:startedworker-emails:worker-emails_00: startedworker-es-update:worker-es-update_00:startedworker-nudges:worker-nudges_00: startedroot@docker_lamp_1:/home/jiminny# php artisan jiminny:debugPreparation for Refi... in 46 m100%8• Mon 11 May 14:14:47181DEV (docker)-zsh84-zshX5screenpipe"O ₴64.18ms DONE11.06ms DONE1.84ms DONE1.32ms DONE1.43ms DONE21.19ms DONE-zshDEV...
|
18386
|
NULL
|
NULL
|
NULL
|
|
18390
|
795
|
11
|
2026-05-11T11:14:47.918023+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778498087918_m2.jpg...
|
PhpStorm
|
faVsco.js – custom.log
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
PhostormVIewINavicareCodeLaravelFV faVsco.js°9 JY- PhostormVIewINavicareCodeLaravelFV faVsco.js°9 JY-20725-handle-HS-search-rate-limiProiect v= custom.logT SyncCrmEntitiesTrait.phpC) CachedCrmServiceDecorator.ong= nuospor-lournal-poll.logch HandleHn<)> phpunit.xm© RateLimitException.phpis ttt.jsE oauth-private.key© PaginationConfia.phdE oauth-public.kevclass Cllent extends Baseclient 1mpLements HubspotclientintertaceE storageE supervisord.pid121text-relav.isonv w tests> Featurelintearation123124125u Servicesv 7UniN ComoonentN Confiauration130iM ConcoleiM ContractsIDTOD EnumsD EventsD ExceptionsTm Crmi©) EmailActivityImportExcw HandlerTlest.pnp© RateLimitExceptionTesC fixturesGuardsW Helpersm) HttoIntearationsalinteractionsaHobs> ActivitvM AiAutomation> Audidv AutomatedReportsc CreateResultsTest.lc RequestGenerateAC) RequestGenerateR,C) SendRenortEynirinclC) SendRenort lohTec© SendReportMailJobC SendRenortNotGenTm Cnlondarm CrmlM nonlDicke• MMailbayTacts naccod. 12 (todav 12:02nubu1etunction 1shubspotrateuimithrowaole se: 000l11 $e instanceof \GuzzleHttp\Exception RequestExceptionreturn (int) $e->getCode === 429:recurn talsepubuac function parseRetrvAfterThrowable Se: 1nt1f method existsSe.qetResponseheaders'?Sheaders = $e->getResponseHeaders() ?: []:svalue = Sheadersl'Retry-After'J ?? Sheadersl'retry-after"J ?? null;if (is arnav(Svalue)) {Svaluel0l 22 null.if (is_numeric($value)) 1return (int) $value;Smessage = strtolower(Se->getMessageO):if (str_contains(Smessage, 'daily')) {recurn o00.if (str_ contains(Smessaqe, 'ten secondly')) {recurn 101if (str_contains(Smessaqe, 'secondly')) {return 1Sthis->loa->warnina('[Hubspotl No retry-after header or known message. using default'. [l'exception_class' => get_class($e),public function parseMessage(Throwable $e): string40hel" Preparation tor kell.... In 40 m100% Lz• Mon 11 May 14:14:47HandleHubspotRateLimitTest v= custom.log X= laravel.log XA SF [jiminny@localhost]4 HS_local [jiminny@localhost]# console [PKol)& console lEUllA console [STAGING]Q- 429CcW.*0 results© UserAutomatedReportsController.php© PlaybackController.php(C) Hubspot/Service.pnp(C) HubSpot/Service.phpT DeleteCrmEntityTrait.php© VerifyActivityCrmTaskJob.php© RateLimitExceptionTest.php© Job.php© CrmActivityService.php© MatchCrmData.php© CrmObjectsResolver.php© ProviderRateLimiter.php2A67 V3 Aio 4 spaces ©...
|
NULL
|
8443987658792335327
|
NULL
|
click
|
ocr
|
NULL
|
PhostormVIewINavicareCodeLaravelFV faVsco.js°9 JY- PhostormVIewINavicareCodeLaravelFV faVsco.js°9 JY-20725-handle-HS-search-rate-limiProiect v= custom.logT SyncCrmEntitiesTrait.phpC) CachedCrmServiceDecorator.ong= nuospor-lournal-poll.logch HandleHn<)> phpunit.xm© RateLimitException.phpis ttt.jsE oauth-private.key© PaginationConfia.phdE oauth-public.kevclass Cllent extends Baseclient 1mpLements HubspotclientintertaceE storageE supervisord.pid121text-relav.isonv w tests> Featurelintearation123124125u Servicesv 7UniN ComoonentN Confiauration130iM ConcoleiM ContractsIDTOD EnumsD EventsD ExceptionsTm Crmi©) EmailActivityImportExcw HandlerTlest.pnp© RateLimitExceptionTesC fixturesGuardsW Helpersm) HttoIntearationsalinteractionsaHobs> ActivitvM AiAutomation> Audidv AutomatedReportsc CreateResultsTest.lc RequestGenerateAC) RequestGenerateR,C) SendRenortEynirinclC) SendRenort lohTec© SendReportMailJobC SendRenortNotGenTm Cnlondarm CrmlM nonlDicke• MMailbayTacts naccod. 12 (todav 12:02nubu1etunction 1shubspotrateuimithrowaole se: 000l11 $e instanceof \GuzzleHttp\Exception RequestExceptionreturn (int) $e->getCode === 429:recurn talsepubuac function parseRetrvAfterThrowable Se: 1nt1f method existsSe.qetResponseheaders'?Sheaders = $e->getResponseHeaders() ?: []:svalue = Sheadersl'Retry-After'J ?? Sheadersl'retry-after"J ?? null;if (is arnav(Svalue)) {Svaluel0l 22 null.if (is_numeric($value)) 1return (int) $value;Smessage = strtolower(Se->getMessageO):if (str_contains(Smessage, 'daily')) {recurn o00.if (str_ contains(Smessaqe, 'ten secondly')) {recurn 101if (str_contains(Smessaqe, 'secondly')) {return 1Sthis->loa->warnina('[Hubspotl No retry-after header or known message. using default'. [l'exception_class' => get_class($e),public function parseMessage(Throwable $e): string40hel" Preparation tor kell.... In 40 m100% Lz• Mon 11 May 14:14:47HandleHubspotRateLimitTest v= custom.log X= laravel.log XA SF [jiminny@localhost]4 HS_local [jiminny@localhost]# console [PKol)& console lEUllA console [STAGING]Q- 429CcW.*0 results© UserAutomatedReportsController.php© PlaybackController.php(C) Hubspot/Service.pnp(C) HubSpot/Service.phpT DeleteCrmEntityTrait.php© VerifyActivityCrmTaskJob.php© RateLimitExceptionTest.php© Job.php© CrmActivityService.php© MatchCrmData.php© CrmObjectsResolver.php© ProviderRateLimiter.php2A67 V3 Aio 4 spaces ©...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
18391
|
795
|
12
|
2026-05-11T11:14:52.597377+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778498092597_m2.jpg...
|
PhpStorm
|
faVsco.js – laravel.log
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
JY-20725-handle-HS-search Project: faVsco.js, menu
JY-20725-handle-HS-search-rate-limit, menu
Start Listening for PHP Debug Connections...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"bounds":{"left":0.025930852,"top":0.019952115,"width":0.03856383,"height":0.025538707},"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JY-20725-handle-HS-search-rate-limit, menu","depth":5,"bounds":{"left":0.064494684,"top":0.019952115,"width":0.09541223,"height":0.025538707},"on_screen":true,"help_text":"Git Branch: JY-20725-handle-HS-search-rate-limit","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"bounds":{"left":0.82413566,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_expanded":false}]...
|
-817699417600123759
|
-7159315621853853246
|
visual_change
|
hybrid
|
NULL
|
Project: faVsco.js, menu
JY-20725-handle-HS-search Project: faVsco.js, menu
JY-20725-handle-HS-search-rate-limit, menu
Start Listening for PHP Debug Connections
PhostormVIewINavicareCodeLaravelKeractorWindowFV faVsco.js°9 JY-20725-handle-HS-search-rate-limitProiect v•.gitignoree audio.wavT SyncCrmEntitiesTrait.phpC) CachedCrmServiceDecorator.ongCh HandleHnh= nuospot-lournal-poll.log© RateLimitException.php© PaginationConfia.phd< phpunit.xmis ttt.isE oauth-private.keyE oauth-public.kev= storageE supervisord.pidclass Cllent extends Baseclient 1mpLements Hubspotclientintertace121122123text-relav.isontests125FeatureIntearation• m Servicesv 7UnitActions130m ComnonentM ConficurationConsoleM ContractsD DomainMntoD EnumsD EventsD Exceptions137© EmailActivityImportExcC HandlerT est.php© RateLimitExceptionTes0 fixturesa GuardsD HelpersahiteIntearationsa InteractionsM.Jobs> ActivitvM AiAutomation>M Audiol• M AutomatedRenortsc) CreateResultsTect.ilC) RequestGenerateA.C) RequestGenerateR,© SendReportExpiring© SendReportJobTes@& SendReportMailJobe CondDanartNatGonMelondarMemmTacts naccod. 12 (todav 12:02nubu1etunction 1shubspotrateuimithrowable se: 00011 $e instanceof \GuzzleHttp\Exception\RequestExceptionreturn (int) $e->getCode === 429:recurn talsepubunc function parseRetrvAfter(Throwable Se: 1nt1f method existsSe.qetResponseheaders'?Sheaders = $e->getResponseHeaders() ?: []:svalue = Sheadersl'Retry-After'J ?? Sheadersl'retry-afterJ ?? null;if (is arnav(Svalue)) {Svaluel0l 22 null.if (is_numeric($value)) 1return (int) $valve;Smessage = strtolower(Se->getMessageO):if (str_contains(Smessage, 'daily')) {recurn o00.if (str_ contains(Smessaqe, 'ten secondly')) {recurn 101if (str_ contains(Smessaqe, 'secondly')) {return 1Sthis->loa->warnina('[Hubspotl No retry-after header or known message, usina default'. [l'exception_class' => get_class($e),public function parseMessage(Throwable $e): stringHudspol/serwice.pnpм A2 A67 ×3 ^• Preparation tor kell.... In 40 m100% 5• Mon 11 May 14:14:52HandleHubspotRateLimitlestv=laravel.logA SF [jiminny@localhost]4 HS_local [jiminny@localhost]&console [pRODl& console (EUNA console [STAGING]Q- 429Cc W.*12026-05-11 11:14:46] local.INF0: [Calendar] Processing sync {"calendarId":"2676cb6d-f86c-427e-bf78-591e388e3cle", "From":null, "to":null, "delta": a2521e2026-05-1111:14:46LOCaL-VAKNuNo:Pipednivel Account not connected for user wusento:'e6558V5y-eVD4-455T -asy a-Sey/90665ay220NPAc COUnCH wuiminnyanodeLs 15ol[2026-05-11 11:14:46] local.INFO: [CrmOwnerResolver] Integration owner is not connected, attempting team members {"crm_provider":"pipedrive", "crm_owner" :241, "te:2026-05-11Local.INFO: [Crm0wnerResolver] No team members found with active crm connection {"crm_provider":"pipedrive" "team_id":19} {"correlation id' W[2026-05-11 11:14:46] local.INFO: [CrmOwnerResolver] No team member found with active crm connection {"crm_provider": "pipedrive", "team_id":19} {"correlation_id"2026-05-11LOCOL.WARNING: Calendar CRi casconnected for user so events will notbe matched ""oroviden":"o1pedrive", "user 1d":241,"message":"Your P1i12026-05-11 11:14:46) Local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1115,"provider":"google"} {"correlation_id":"524cb078-e2d4-4edd-b27f-LOCnPWHIRSochalAccountServiceloken net eved UsocaAccount Gwai8ncoena COodle WCOnelation wA КУХСhУВ-ССИ4eСОEБИИ11:14:46] Local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"Legacy"} {"correlation_id":"524cb078-e2d4-4edd-b27f-7413b0226b04" , "trLocneowir Icoodle calendarFartled to warch channetor callendar Mcalliendad GA7У66060-1860-200-085S eКEНeКCHel"COdelPCaneason"domain "• ' "alohal"."reason\": \"push.webhookUrlNotHttps\","message)": \"WebHook callback must be HTTPS: /webhook/calendar/google?resourceType=event\"\"code": 400lmoccano ". "WohHool callhach muc+ ho HTTDC. /wohbooklcalondan/aooale2nocouncoTvno=ovont}"} {"correlation_id":"524cb078-e2d4-4edd-b27f-7413b0226b04" "trace_id":"6be288f3-8d8f-454f-85cf-d057bfee5a3b"}[2026-05-11 11:14:46] local.WARNING: [Calendar] Sync failed {"calendarId":"2676cb6d-f86c-427e-bf78-591e388e3cle" "code" :400, "reason" :"{"domain": "qlobal\""reason\": \"push.webhookurLNotHttps)","message": "Webrook callback must be HlPs: weonook calendar/aooqle resourcel voezevent""code": 400)"message"* "WebHook callback must be HITPS: webhook/calendar/aoogle?resourcetvoezevent"P""concellation1d"."522ch018-02d2-2edd-h214-1216h0226h02" "toace_10":6h028845-8086-452-85cf-d05VhfeeSa5h"[2026-05-11 11:14:46] local.INF0: [SocialAccountService] Fetching token {"socialAccountId":1421,"provider":"office"} {"correlation_id":"f7597207-7618-4909-b169-nonlaWEi SoclalAccountServiicel Token netcilevedE "social Accountid" 120h "noovilden" - "oEsice"@oonneilationGd-57597207571618-79095611602026-05-111Local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"Legacy"} {"correlation_id":"f7597207-7618-4909-b169-13d8342e3a12" , "tr[2026-05-11 11:14:46] Local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499, "provider": "hubspot"} {"correlation_id":"{7597207-7618-4909-b16[2026-05-11 11:14:46] local.INF0: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"f7597207-7618-4909-b1[2026-05-11 11:14:46] local.INF0: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"f7597207-7618-4909-b169-13d8342e3a12", "t[2026-05-11 11:14:46] local.INF0: [Crm0wnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot" "crm_owner":89,"team id":2} {"correlationг2004-05-11 11•14•441|Local. INFO: [MS Office Calendar] Skipping delta sync for daily mode {"calendarId": "9e8b1a2c-1a8f-42bd-b161-810fc0baf540"} {"correlation icW Windsurf Teams 2:1 UTF-8 Po 4 spaces...
|
18390
|
NULL
|
NULL
|
NULL
|
|
18392
|
794
|
8
|
2026-05-11T11:14:56.918460+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778498096918_m1.jpg...
|
PhpStorm
|
faVsco.js – custom.log
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
iTerm2ShellEditViewSessionScriptsProfilesWindowHel iTerm2ShellEditViewSessionScriptsProfilesWindowHelp0Preparation for Refi... in 46 mDEV (docker)-zshDOCKERcompiledeventsroutesviews3881DEV (docker)$2APP (-zsh)H3Jiminny-worker-processing-2:j1minny-worker-processing-2_00: stoppedjiminny-worker-processing-3:jiminny-worker-processing-3_00: stoppedjiminny-worker-processing-4:jiminny-worker-processing-4_00: stoppedjiminny-worker-processing-5:jiminny-worker-processing-5_00: stoppedjiminny-worker-processing-delayed: jiminny-worker-processing-delayed_00:stoppedworker-analytics:worker-analytics_00: stoppedworker-crm-update:worker-crm-update_00: stoppedworker-download:worker-download_00:stoppedworker-nudges:worker-nudges_00: stoppedworker:worker_00: stoppedworker-audio:worker-audio_00: stoppedworker-calendar:worker-calendar_00: stoppedworker-conferences:worker-conferences_00: stoppedworker-emails:worker-emails_00: stoppedjiminny-worker-processing-1:jiminny-worker-processing-1_00: stoppedworker-crm-sync:worker-crm-sync_00:stoppedworker-es-update:worker-es-update_00: stoppedartisan-schedule:artisan-schedule_00: stoppedartisan-schedule:artisan-schedule_00: startedjiminny-worker-processing-1:jiminny-worker-processing-1_00: startedjiminny-worker-processing-2: jiminny-worker-processing-2_00: startedjiminny-worker-processing-3:jiminny-worker-processing-3_00: startedjiminny-worker-processing-4:jiminny-worker-processing-4_00: startedjiminny-worker-processing-5:jiminny-worker-processing-5_00: startedjiminny-worker-processing-delayed: jiminny-worker-processing-delayed_00: startedworker:worker_00: startedworker-analytics:worker-analytics_00: startedworker-audio:worker-audio_00: startedworker-calendar:worker-calendar_00:startedworker-conferences:worker-conferences_00: startedworker-crm-sync:worker-crm-sync_00: startedworker-crm-update:worker-crm-update_00: startedworker-download:worker-download_00: startedworker-emails:worker-emails_00: startedworker-es-update:worker-es-update_00:startedworker-nudges:worker-nudges_00: startedroot@docker_lamp_1:/home/jiminny#php artisan jiminny:debugDispatching 100 MatchActivityCrmDatajobs (portal=2)Done.Watch logs and runjiminny:debug observeRateLimit to inspect cachestate.root@docker_lamp_1:/home/jiminny# ]84-zshX5100% <78• Mon 11 May 14:14:56T81-zsh+screenpipe"O 8861.84ms DONE1.32ms DONE1.43ms DONE21.19ms DONEDEV...
|
NULL
|
5669464413084731653
|
NULL
|
click
|
ocr
|
NULL
|
iTerm2ShellEditViewSessionScriptsProfilesWindowHel iTerm2ShellEditViewSessionScriptsProfilesWindowHelp0Preparation for Refi... in 46 mDEV (docker)-zshDOCKERcompiledeventsroutesviews3881DEV (docker)$2APP (-zsh)H3Jiminny-worker-processing-2:j1minny-worker-processing-2_00: stoppedjiminny-worker-processing-3:jiminny-worker-processing-3_00: stoppedjiminny-worker-processing-4:jiminny-worker-processing-4_00: stoppedjiminny-worker-processing-5:jiminny-worker-processing-5_00: stoppedjiminny-worker-processing-delayed: jiminny-worker-processing-delayed_00:stoppedworker-analytics:worker-analytics_00: stoppedworker-crm-update:worker-crm-update_00: stoppedworker-download:worker-download_00:stoppedworker-nudges:worker-nudges_00: stoppedworker:worker_00: stoppedworker-audio:worker-audio_00: stoppedworker-calendar:worker-calendar_00: stoppedworker-conferences:worker-conferences_00: stoppedworker-emails:worker-emails_00: stoppedjiminny-worker-processing-1:jiminny-worker-processing-1_00: stoppedworker-crm-sync:worker-crm-sync_00:stoppedworker-es-update:worker-es-update_00: stoppedartisan-schedule:artisan-schedule_00: stoppedartisan-schedule:artisan-schedule_00: startedjiminny-worker-processing-1:jiminny-worker-processing-1_00: startedjiminny-worker-processing-2: jiminny-worker-processing-2_00: startedjiminny-worker-processing-3:jiminny-worker-processing-3_00: startedjiminny-worker-processing-4:jiminny-worker-processing-4_00: startedjiminny-worker-processing-5:jiminny-worker-processing-5_00: startedjiminny-worker-processing-delayed: jiminny-worker-processing-delayed_00: startedworker:worker_00: startedworker-analytics:worker-analytics_00: startedworker-audio:worker-audio_00: startedworker-calendar:worker-calendar_00:startedworker-conferences:worker-conferences_00: startedworker-crm-sync:worker-crm-sync_00: startedworker-crm-update:worker-crm-update_00: startedworker-download:worker-download_00: startedworker-emails:worker-emails_00: startedworker-es-update:worker-es-update_00:startedworker-nudges:worker-nudges_00: startedroot@docker_lamp_1:/home/jiminny#php artisan jiminny:debugDispatching 100 MatchActivityCrmDatajobs (portal=2)Done.Watch logs and runjiminny:debug observeRateLimit to inspect cachestate.root@docker_lamp_1:/home/jiminny# ]84-zshX5100% <78• Mon 11 May 14:14:56T81-zsh+screenpipe"O 8861.84ms DONE1.32ms DONE1.43ms DONE21.19ms DONEDEV...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
18393
|
795
|
13
|
2026-05-11T11:14:58.966625+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778498098966_m2.jpg...
|
PhpStorm
|
faVsco.js – laravel.log
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
PhostormVIewINavicareCodeLaravelKeractorWindowFV f PhostormVIewINavicareCodeLaravelKeractorWindowFV faVsco.js°9 JY-20725-handle-HS-search-rate-limitProiect•.gitignoree audio.wavT SyncCrmEntitiesTrait.phpC) CachedCrmServiceDecorator.ongCh HandleHnh= nuospot-lournal-poll.log© RateLimitException.php© PaginationConfia.phd< phpunit.xmis ttt.isE oauth-private.keyE oauth-public.kev= storageE supervisord.pidclass Cllent extends Baseclient 1mpLements Hubspotclientintertace121122123text-relav.isontests125FeatureIntearation• m Servicesv 7UnitActions130m ComnonentM ConficurationConsoleContractsD DomainMntoD EnumsD EventsD Exceptions137© EmailActivityImportExcC HandlerT est.php© RateLimitExceptionTes0 fixturesa GuardsD HelpersahiteIntearationsa InteractionsM.Jobs> ActivitvM AiAutomation>M Audiol• M AutomatedRenortsnubu1etunction 1shubspotrateuimithrowable se: 00011 $e instanceof \GuzzleHttp\Exception\RequestExceptionreturn (int) $e->getCode === 429:recurn talsepubunc function parseRetrvAfter(Throwable Se: 1nt1f method existsSe.qetResponseheaders'?Sheaders = $e->getResponseHeaders() ?: []:svalue = Sheadersl'Retry-After'J ?? Sheadersl'retry-after"J ?? null;if (is arnav(Svalue)) {Svaluel0l 22 null.if (is_numeric($value)) 1return (int) $value;Smessage = strtolower(Se->getMessageO):if (str_contains(Smessage, 'daily')) {recurn o00.if (str_ contains(Smessaqe, 'ten secondly')) {recurn 101if (str_ contains(Smessaqe, 'secondly')) {return 1c) CreateResultsTect.ilC) RequestGenerateA.Sthis->loa->warnina('[Hubspotl No retry-after header or known message. using default'. [l'exception_class' => get_class($e),C) RequestGenerateR,© SendReportExpiring© SendReportJobTes@& SendReportMailJobe CondDonartNatGonMelondarMemmpublic function parseMessage(Throwable $e): string(c) HubSpot/Service.onpм A2 A67 ×3 ^11 1111• Preparation tor kell.... In 40 m100% 5• Mon 11 May 14:14:58HandleHubspotRateLimitTest v= custom.logA SF [jiminny@localhost]4 HS_local [jiminny@localhost]&console [pRODI& console lEUllA console [STAGING]Q- 429X8 Cc W .*wos.YL2026-05-11 11:14:42) local.INFO: LCommands/AsyncUpdateEsEntities) Starting ES update worker 1"pid":73601, "workerld":"","target":"activities"s 1"correlation_id'L2026-05-11 11:14:44] Local.INF0: [SocialAccountService) Fetching token 1"socialAccountld":1502, "provider":"google"s i"correlation_id":"ec93ac76-3622-4f4b-aa7a[2026-05-11 11:14:44] local.INF0: [SocialAccountService] Token retrieved {"socialAccountId":1502,"provider":"google"} {"correlation_id":"ec93ac76-3622-4f4b-aa7:[2026-05-11 11:14:44] local.INF0: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"ec93ac76-3622-4f4b-aa7a-d784d1d1b85f","t[2026-05-11 11:14:44] local.INF0: [Calendar] Processing sync {"calendarId":"a33076c1-8d97-431a-99f0-85c9524e118b","from":null,"to":null,"delta":"CIiFh8TP44kDEIi[2026-05-11 11:14:44] local.INFO: [Crm0wnerResolver] Integration owner matched as CRM Owner {"crm_provider":"integration-app","crm_owner":1695,"team_id":3143} 1[2026-05-11 11:14:44] local.INF0: [SocialAccountService] Fetching token {"socialAccountId":1502,"provider":"google"} {"correlation_id":"ec93ac76-3622-4f4b-aa7a[2026-05-11 11:14:45] local.INF0: [SocialAccountService] Token retrieved {"socialAccountId":1502,"provider":"google"} {"correlation_id":"ec93ac76-3622-4f4b-aa7:[2026-05-11 11:14:45] local.INF0: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"ec93ac76-3622-4f4b-aa7a-d784d1d1b85f" ,"ti[2026-05-11 11:14:45] local.INF0: [Google Calendar] Failed to watch channel for calendar {"calendarId":"a33076c1-8d97-431a-99f0-85c9524e118b" "code":400,"reaso"errors)":("reason": "pusn.wedhookurLnothccps"message": "wedhook callback must de Hiirs: weonook,calendar/qooqle resourcel voezevent""code": 400."message)": |"WebHook callback must be HTTPS: /webhook/calendar/aoogle?resourceTvpe=event\"s" 1"correlation_1d":"ec93ac76-3622-4f4b-aa7a-d784d1d1b85f", "trace_1d": "6be288f3-8d8f-454f-85cf-d057bfeesa3b"512026-05-11S И E IARASI E OON SIVARMNCR ICALendanSenC fant led uoa lena G МААКОСЙ ЕНО ЕИКГА-СОEСКУLICI BECOGEMRZOORWNeASOnMRR"domain ". "alobal".\"reason\": \"push.webhookUrlNotHttps\","meccade "• "WehHonk callhack muct he HTTPS:wehhooklcal.endan/anoal.e/npcaunceTvne=event""code": 400)"message": "WebHook callback must be HTTPS: /webhook/calendar/google?resourceType=event\I}"} {"correlation_id":"ec93ac76-3622-4f4b-aa7a-d784d1d1b85f" "trace_id":"6be288f3-8d8f-454f-85cf-d057bfeeSa3b"}[2026-05-11 11:14:46] local.INF0: [SocialAccountService] Fetching token {"socialAccountId":1115,"provider":"google"} {"correlation_id":"524cb078-e2d4-4edd-b27f-[2026-05-11 11:14:46] local.INF0: [SocialAccountService] Token retrieved {"socialAccountId":1115,"provider":"google"} {"correlation id":"524cb078-e2d4-4edd-b27f[2026-05-11 11:14:46] local.INF0: [EncryptedTokenManager] Generating access token. {"mode"."Legacy"} {"correlation id"."524cb078-e2d4-4edd-b27f-7413b0226b04" "t[2026-05-11 11:14:46] local.INF0: [Calendar] Processing sync {"calendarId":"2676cb6d-f86c-427e-bf78-591e388e3cle" "from":null,"to":null, "delta"."CJ x4903ipIDEJ[2026-05-11 11:14:46] local.WARNING: [Pipedrivel Account not connected for user {"userId"."e6538737-e7b4-455f-a37a-3e79b665a220" "account" :{"Jiminny) (Models| \So[2026-05-11 11:14:46] local.INF0: [Crm0wnerResolverl Integration owner is not connected.attemptina team members ""crm_providen":"o1pedrive"."crm owner":241."te:12026-05-11 11:14:4611LocaPowaurIrmownerResolver No team membens round with active crm connectiion ucem orov den pn nedn veleueam Cie E tconnelation o[2026-05-11 11:14:46] local.INF0: [Crm0wnerResolverl No teammember found with active erm connection {"crm_provider"."pipedrive" "team_id":19} {"correlation id"12026-05-11 11:14:4611LocaL.WARNING: Calendar CRM disconnected foruser so events will not be matched - "oroviden":"oipedrive""user_ 1d":241."message":"Your P112026-05-11 11:14:461Local. INF0: [SocialAccountService] Fetching token {"socialAccountId":1115, "provider":"google"} {"correlation_id":"524cb078-e2d4-4edd-b27f-*12026-05-1111:14:4611LocoLINFi: SocialAccountServicel Tokenretrieved "socialAccountlid":1115. "oroviden"*"ooodle"> "correlation 1d:52400078-0204-42dd-027+[2026-05-11 11:14:46] Zocal.INFO: [EncryptedTokenManager] Generating access token. {"mode":"Legacy"} {"correlation_id":"524cb078-e2d4-4edd-b27f-7413b0226b04" , "tr2026-05-1131a2419 MocnloWEir Icoodle Calendan Eaitled to watch channelltor callendar Mcalllendan Glai2160h601860-201e-h8E59hlekBeke lel WCodelRzdeWneasonW Windsurf Teams2:1 UTF-8io 4 spaces...
|
NULL
|
-1338311068128251938
|
NULL
|
click
|
ocr
|
NULL
|
PhostormVIewINavicareCodeLaravelKeractorWindowFV f PhostormVIewINavicareCodeLaravelKeractorWindowFV faVsco.js°9 JY-20725-handle-HS-search-rate-limitProiect•.gitignoree audio.wavT SyncCrmEntitiesTrait.phpC) CachedCrmServiceDecorator.ongCh HandleHnh= nuospot-lournal-poll.log© RateLimitException.php© PaginationConfia.phd< phpunit.xmis ttt.isE oauth-private.keyE oauth-public.kev= storageE supervisord.pidclass Cllent extends Baseclient 1mpLements Hubspotclientintertace121122123text-relav.isontests125FeatureIntearation• m Servicesv 7UnitActions130m ComnonentM ConficurationConsoleContractsD DomainMntoD EnumsD EventsD Exceptions137© EmailActivityImportExcC HandlerT est.php© RateLimitExceptionTes0 fixturesa GuardsD HelpersahiteIntearationsa InteractionsM.Jobs> ActivitvM AiAutomation>M Audiol• M AutomatedRenortsnubu1etunction 1shubspotrateuimithrowable se: 00011 $e instanceof \GuzzleHttp\Exception\RequestExceptionreturn (int) $e->getCode === 429:recurn talsepubunc function parseRetrvAfter(Throwable Se: 1nt1f method existsSe.qetResponseheaders'?Sheaders = $e->getResponseHeaders() ?: []:svalue = Sheadersl'Retry-After'J ?? Sheadersl'retry-after"J ?? null;if (is arnav(Svalue)) {Svaluel0l 22 null.if (is_numeric($value)) 1return (int) $value;Smessage = strtolower(Se->getMessageO):if (str_contains(Smessage, 'daily')) {recurn o00.if (str_ contains(Smessaqe, 'ten secondly')) {recurn 101if (str_ contains(Smessaqe, 'secondly')) {return 1c) CreateResultsTect.ilC) RequestGenerateA.Sthis->loa->warnina('[Hubspotl No retry-after header or known message. using default'. [l'exception_class' => get_class($e),C) RequestGenerateR,© SendReportExpiring© SendReportJobTes@& SendReportMailJobe CondDonartNatGonMelondarMemmpublic function parseMessage(Throwable $e): string(c) HubSpot/Service.onpм A2 A67 ×3 ^11 1111• Preparation tor kell.... In 40 m100% 5• Mon 11 May 14:14:58HandleHubspotRateLimitTest v= custom.logA SF [jiminny@localhost]4 HS_local [jiminny@localhost]&console [pRODI& console lEUllA console [STAGING]Q- 429X8 Cc W .*wos.YL2026-05-11 11:14:42) local.INFO: LCommands/AsyncUpdateEsEntities) Starting ES update worker 1"pid":73601, "workerld":"","target":"activities"s 1"correlation_id'L2026-05-11 11:14:44] Local.INF0: [SocialAccountService) Fetching token 1"socialAccountld":1502, "provider":"google"s i"correlation_id":"ec93ac76-3622-4f4b-aa7a[2026-05-11 11:14:44] local.INF0: [SocialAccountService] Token retrieved {"socialAccountId":1502,"provider":"google"} {"correlation_id":"ec93ac76-3622-4f4b-aa7:[2026-05-11 11:14:44] local.INF0: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"ec93ac76-3622-4f4b-aa7a-d784d1d1b85f","t[2026-05-11 11:14:44] local.INF0: [Calendar] Processing sync {"calendarId":"a33076c1-8d97-431a-99f0-85c9524e118b","from":null,"to":null,"delta":"CIiFh8TP44kDEIi[2026-05-11 11:14:44] local.INFO: [Crm0wnerResolver] Integration owner matched as CRM Owner {"crm_provider":"integration-app","crm_owner":1695,"team_id":3143} 1[2026-05-11 11:14:44] local.INF0: [SocialAccountService] Fetching token {"socialAccountId":1502,"provider":"google"} {"correlation_id":"ec93ac76-3622-4f4b-aa7a[2026-05-11 11:14:45] local.INF0: [SocialAccountService] Token retrieved {"socialAccountId":1502,"provider":"google"} {"correlation_id":"ec93ac76-3622-4f4b-aa7:[2026-05-11 11:14:45] local.INF0: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"ec93ac76-3622-4f4b-aa7a-d784d1d1b85f" ,"ti[2026-05-11 11:14:45] local.INF0: [Google Calendar] Failed to watch channel for calendar {"calendarId":"a33076c1-8d97-431a-99f0-85c9524e118b" "code":400,"reaso"errors)":("reason": "pusn.wedhookurLnothccps"message": "wedhook callback must de Hiirs: weonook,calendar/qooqle resourcel voezevent""code": 400."message)": |"WebHook callback must be HTTPS: /webhook/calendar/aoogle?resourceTvpe=event\"s" 1"correlation_1d":"ec93ac76-3622-4f4b-aa7a-d784d1d1b85f", "trace_1d": "6be288f3-8d8f-454f-85cf-d057bfeesa3b"512026-05-11S И E IARASI E OON SIVARMNCR ICALendanSenC fant led uoa lena G МААКОСЙ ЕНО ЕИКГА-СОEСКУLICI BECOGEMRZOORWNeASOnMRR"domain ". "alobal".\"reason\": \"push.webhookUrlNotHttps\","meccade "• "WehHonk callhack muct he HTTPS:wehhooklcal.endan/anoal.e/npcaunceTvne=event""code": 400)"message": "WebHook callback must be HTTPS: /webhook/calendar/google?resourceType=event\I}"} {"correlation_id":"ec93ac76-3622-4f4b-aa7a-d784d1d1b85f" "trace_id":"6be288f3-8d8f-454f-85cf-d057bfeeSa3b"}[2026-05-11 11:14:46] local.INF0: [SocialAccountService] Fetching token {"socialAccountId":1115,"provider":"google"} {"correlation_id":"524cb078-e2d4-4edd-b27f-[2026-05-11 11:14:46] local.INF0: [SocialAccountService] Token retrieved {"socialAccountId":1115,"provider":"google"} {"correlation id":"524cb078-e2d4-4edd-b27f[2026-05-11 11:14:46] local.INF0: [EncryptedTokenManager] Generating access token. {"mode"."Legacy"} {"correlation id"."524cb078-e2d4-4edd-b27f-7413b0226b04" "t[2026-05-11 11:14:46] local.INF0: [Calendar] Processing sync {"calendarId":"2676cb6d-f86c-427e-bf78-591e388e3cle" "from":null,"to":null, "delta"."CJ x4903ipIDEJ[2026-05-11 11:14:46] local.WARNING: [Pipedrivel Account not connected for user {"userId"."e6538737-e7b4-455f-a37a-3e79b665a220" "account" :{"Jiminny) (Models| \So[2026-05-11 11:14:46] local.INF0: [Crm0wnerResolverl Integration owner is not connected.attemptina team members ""crm_providen":"o1pedrive"."crm owner":241."te:12026-05-11 11:14:4611LocaPowaurIrmownerResolver No team membens round with active crm connectiion ucem orov den pn nedn veleueam Cie E tconnelation o[2026-05-11 11:14:46] local.INF0: [Crm0wnerResolverl No teammember found with active erm connection {"crm_provider"."pipedrive" "team_id":19} {"correlation id"12026-05-11 11:14:4611LocaL.WARNING: Calendar CRM disconnected foruser so events will not be matched - "oroviden":"oipedrive""user_ 1d":241."message":"Your P112026-05-11 11:14:461Local. INF0: [SocialAccountService] Fetching token {"socialAccountId":1115, "provider":"google"} {"correlation_id":"524cb078-e2d4-4edd-b27f-*12026-05-1111:14:4611LocoLINFi: SocialAccountServicel Tokenretrieved "socialAccountlid":1115. "oroviden"*"ooodle"> "correlation 1d:52400078-0204-42dd-027+[2026-05-11 11:14:46] Zocal.INFO: [EncryptedTokenManager] Generating access token. {"mode":"Legacy"} {"correlation_id":"524cb078-e2d4-4edd-b27f-7413b0226b04" , "tr2026-05-1131a2419 MocnloWEir Icoodle Calendan Eaitled to watch channelltor callendar Mcalllendan Glai2160h601860-201e-h8E59hlekBeke lel WCodelRzdeWneasonW Windsurf Teams2:1 UTF-8io 4 spaces...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
18394
|
794
|
9
|
2026-05-11T11:15:05.094217+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778498105094_m1.jpg...
|
PhpStorm
|
faVsco.js – laravel.log
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
iTerm2ShellEditViewSessionScriptsProfilesWindowHel iTerm2ShellEditViewSessionScriptsProfilesWindowHelpPreparation for Refi... in 45 m100% <78• Mon 11 May 14:15:04181DEV (docker)-zshDOCKERcompiledeventsroutesviewsO ₴1DEV (docker)$2APP (-zsh)*3Jiminny-worker-processing-2:j1minny-worker-processing-2_00: stoppedjiminny-worker-processing-3:jiminny-worker-processing-3_00: stoppedjiminny-worker-processing-4:jiminny-worker-processing-4_00: stoppedjiminny-worker-processing-5:jiminny-worker-processing-5_00: stoppedjiminny-worker-processing-delayed: jiminny-worker-processing-delayed_00:stoppedworker-analytics:worker-analytics_00: stoppedworker-crm-update:worker-crm-update_00: stoppedworker-download:worker-download_00:stoppedworker-nudges:worker-nudges_00: stoppedworker:worker_00: stoppedworker-audio:worker-audio_00: stoppedworker-calendar:worker-calendar_00: stoppedworker-conferences:worker-conferences_00: stoppedworker-emails:worker-emails_00: stoppedjiminny-worker-processing-1:jiminny-worker-processing-1_00: stoppedworker-crm-sync:worker-crm-sync_00:stoppedworker-es-update:worker-es-update_00: stoppedartisan-schedule:artisan-schedule_00: stoppedartisan-schedule:artisan-schedule_00: startedjiminny-worker-processing-1:jiminny-worker-processing-1_00: startedjiminny-worker-processing-2: jiminny-worker-processing-2_00: startedjiminny-worker-processing-3:jiminny-worker-processing-3_00: startedjiminny-worker-processing-4:jiminny-worker-processing-4_00: startedjiminny-worker-processing-5:jiminny-worker-processing-5_00: startedjiminny-worker-processing-delayed: jiminny-worker-processing-delayed_00: startedworker:worker_00: startedworker-analytics:worker-analytics_00: startedworker-audio:worker-audio_00: startedworker-calendar:worker-calendar_00:startedworker-conferences:worker-conferences_00: startedworker-crm-sync:worker-crm-sync_00: startedworker-crm-update:worker-crm-update_00: startedworker-download:worker-download_00: startedworker-emails:worker-emails_00: startedworker-es-update:worker-es-update_00:startedworker-nudges:worker-nudges_00: startedroot@docker_lamp_1:/home/jiminny#php artisan jiminny:debugDispatching 100 MatchActivityCrmDatajobs (portal=2)Done.Watch logs and runjiminny:debug observeRateLimit to inspect cachestate.root@docker_lamp_1:/home/jiminny# ]84-zshX5screenpipe"O 8861.84ms DONE1.32ms DONE1.43ms DONE21.19ms DONE-zsh+DEV...
|
NULL
|
-4109698006221386393
|
NULL
|
click
|
ocr
|
NULL
|
iTerm2ShellEditViewSessionScriptsProfilesWindowHel iTerm2ShellEditViewSessionScriptsProfilesWindowHelpPreparation for Refi... in 45 m100% <78• Mon 11 May 14:15:04181DEV (docker)-zshDOCKERcompiledeventsroutesviewsO ₴1DEV (docker)$2APP (-zsh)*3Jiminny-worker-processing-2:j1minny-worker-processing-2_00: stoppedjiminny-worker-processing-3:jiminny-worker-processing-3_00: stoppedjiminny-worker-processing-4:jiminny-worker-processing-4_00: stoppedjiminny-worker-processing-5:jiminny-worker-processing-5_00: stoppedjiminny-worker-processing-delayed: jiminny-worker-processing-delayed_00:stoppedworker-analytics:worker-analytics_00: stoppedworker-crm-update:worker-crm-update_00: stoppedworker-download:worker-download_00:stoppedworker-nudges:worker-nudges_00: stoppedworker:worker_00: stoppedworker-audio:worker-audio_00: stoppedworker-calendar:worker-calendar_00: stoppedworker-conferences:worker-conferences_00: stoppedworker-emails:worker-emails_00: stoppedjiminny-worker-processing-1:jiminny-worker-processing-1_00: stoppedworker-crm-sync:worker-crm-sync_00:stoppedworker-es-update:worker-es-update_00: stoppedartisan-schedule:artisan-schedule_00: stoppedartisan-schedule:artisan-schedule_00: startedjiminny-worker-processing-1:jiminny-worker-processing-1_00: startedjiminny-worker-processing-2: jiminny-worker-processing-2_00: startedjiminny-worker-processing-3:jiminny-worker-processing-3_00: startedjiminny-worker-processing-4:jiminny-worker-processing-4_00: startedjiminny-worker-processing-5:jiminny-worker-processing-5_00: startedjiminny-worker-processing-delayed: jiminny-worker-processing-delayed_00: startedworker:worker_00: startedworker-analytics:worker-analytics_00: startedworker-audio:worker-audio_00: startedworker-calendar:worker-calendar_00:startedworker-conferences:worker-conferences_00: startedworker-crm-sync:worker-crm-sync_00: startedworker-crm-update:worker-crm-update_00: startedworker-download:worker-download_00: startedworker-emails:worker-emails_00: startedworker-es-update:worker-es-update_00:startedworker-nudges:worker-nudges_00: startedroot@docker_lamp_1:/home/jiminny#php artisan jiminny:debugDispatching 100 MatchActivityCrmDatajobs (portal=2)Done.Watch logs and runjiminny:debug observeRateLimit to inspect cachestate.root@docker_lamp_1:/home/jiminny# ]84-zshX5screenpipe"O 8861.84ms DONE1.32ms DONE1.43ms DONE21.19ms DONE-zsh+DEV...
|
18392
|
NULL
|
NULL
|
NULL
|
|
18395
|
795
|
14
|
2026-05-11T11:15:05.079730+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778498105079_m2.jpg...
|
PhpStorm
|
faVsco.js – laravel.log
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
PhostormVIewINavicareCodeLaravelKeractorWindowFV f PhostormVIewINavicareCodeLaravelKeractorWindowFV faVsco.js°9 JY-20725-handle-HS-search-rate-limitProiect•.gitignoreT SyncCrmEntitiesTrait.phpC) CachedCrmServiceDecorator.onge audio.wav© HandleHub= nuospot-lournal-poll.log© RateLimitException.php© PaginationConfia.phdonounit.xmiis ttt.isclass Cllent extends Baseclient 1mpLements HubspotclientintertaceE oauth-private.keyE oauth-public.kev= storageE supervisord.pid121122123text-relav.isontests125FeatureIntearation• m Servicesv 7UnitActions130m ComnonentM ConficurationConsoleContractsD DomainMntoD EnumsD EventsD Exceptions137© EmailActivityImportExcC HandlerT est.php© RateLimitExceptionTes0 fixturesa GuardsD HelpersahiteIntearationsa InteractionsM.Jobs> ActivitvM AiAutomation>M Audiol• M AutomatedRenortsc) CreateResultsTect.ilC) RequestGenerateA.C) RequestGenerateR,© SendReportExpiring© SendReportJobTes@& SendReportMailJobe CondDonartNatGonMelondarMemmTacts naccod. 12 (todav 12:02nubu1etunction 1shubspotrateuimithrowable sel: 000l11 $e instanceof \GuzzleHttp\Exception\RequestExceptionreturn (int) $e->getCode === 429:recurn talsepubunc function parseRetrvAfterThrowable Sel: 1nt1f method existsSe.qetResponseheaders'?Sheaders = $e->getResponseHeaders() ?: []:svalue = Sheadens|"Retrv-Aften' ? Sheadens"retrv-aften' ? null:if (is arnav(Svalue)) {Svaluel0l 22 null.if (is_numeric($value)) 1return (int) $valve;Smessage = strtolower(Se->getMessageO):if (str_contains(Smessage, 'daily')) {recurn o00.if (str_ contains(Smessaqe, 'ten secondly')) {recurn 101if (str_ contains(Smessaqe, 'secondly')) {return 1Sthis->loa->warnina('[Hubspotl No retry-after header or known message, usina default'. [l'exception_class' => get_class($e),public function parseMessage(Throwable $e): stringOhuospot/serwice.onpA2A67 V3 A v 55=80Preparation tor kell.. In 40 m100% 5• Mon 11 May 14:15:04HandleHubspotRateLimitlestv=laravel.logA SF [jiminny@localhost]4 HS_local [jiminny@localhost]console [pRODl& console (EullA console [STAGING]X8 Cc W .*12026-05-11 11:14:401 Local.INFU:Looogle Calendars Failed tomateh channet torcalenoaniealenoario,:a.loeoo0-t.oo-al-DV-%e50,1,01"error":""domain": |"qlobal\".1"reason\": 1"push.webhookUrLNotHttpsl",("message) ": |"WebHook callback must be HTTPS:/webhook/calendar/aooqle?resourceTvpe=event\""message"* "WebHook callback must be HITPS: webhook/calendar/aoogle?resourcetvoezevent"}"} {"correlation_id":"524cb078-e2d4-4edd-b27f-7413b0226b04", "trace_id":"6be288f3-8d8f-454f-85cf-d057bfee5a3b"}[2026-05-11 11:14:46] Local.WARNING: [Calendar] Sync failed {"calendarId":"2676cb6d-f86c-427e-bf78-591e388e3cle", "code" :400, "reason" : "{"domain ". "alohal".\"reason|": \"push.webhookUrlNotHttps\""message)": \"WebHook callback must be HTTPS: /webhook/calendar/google?resourceType=event\""code": 400)"message": "WebHook callback must be HTTPS: /webhook/calendar/gooqle?r}"} {"correlation_id":"524cb078-e2d4-4edd-b27f-7413b0226b04" "trace_id":"6be288f3-8d8f-454f-85cf-d057bfee5a3b"}[2026-05-11 11:14:46] Local. INFO: [SociaLAccountServicel Fetching token f"socialAccount1d": 1421 "providen" "office"y f"correlation idw - [PHONE]-4909-b169-1[2026-05-11 11:14:46] local.INF0: [SocialAccountService] Token retrieved {"socialAccountId":1421, "provider" :"office"} {"correlation_id":"{7597207-7618-4909-b16912026-05-1114:14:46Local,INF0: [EncrvptedTokenManagerl Generating access token. {"mode"."legacv"} {"correlation id"."(7597207-7618-4909-b169-13d8342e3a12" "+*2026-05-11 11:14:4611Local.INFO: [Calendar] Processing sync {"calendarId":"9e8b1a2c-1a8f-42bd-b161-810fc0baf540" , "from":null, "to" :null, "delta" : "ROusmcdymMuZCBY2026-05-1111:14:4611LOCAPOWHIR ISocialAccountServicel Fetchino tokenE usochal Account Gla 2isonoy GenPUosDotWCOnelatiOn GWAW59N20Y 5Y158-490950162026-05-11 11:14:46112026-05-1111:14:4611LocaL.INF0: EncrvotedTokenlanager Generatina access token."mode":"Leqacy"? ""correlation id":"[CREDIT_CARD]-0169-15d8342e3a12"."tr[2026-05-11 11:14:46] Local.INF0: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider": "hubspot", "crm_owner":89, "team_id":2} {"correlatioLocal.INFO: [MS Office Calendar] Skipping delta syncfor daily mode "calendanld":"0e8h1a2c-1a8f-42hd-h161-810fc0baf540"> "cornelation1o11:14•551 local. TNSO.[MatchActivityCrmData] Starting CRM data matching {"activity":615092, "remote_search": true, "set_configuration":2,"old_state":{"Local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities" "purpose". "searchable-observer-update" "entitvId":615092} {"con[2026-05-11 11:14:56] Local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities" "entityId":615092, "collectionKey": "activitiocdLNE MatchAct vtviomDatal Pactcnants old state WactVilty" 615002 "nantlcinantc"aeMidl10002 "nsen fdl annll "contact idlani[2026-05-11 11:14:56] local.INF0: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"608ff761-7810-47e1-83e6[2026-05-11 11:14:56] local.INF0: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"608ff761-7810-47e1-83€[2026-05-11 11:14:56] local.INF0: [EncryptedTokenManager] Generating access token. {"mode:"Legacy"} {"correlation_id":"608ff761-7810-47e1-83e6-d9c4add1f787", "t112004-05-11 11.14•541 1ocol TМS0• [6amÎwnonPocolvenl Tntoanation12004-05-11 11•14•541|local. INFO: [Prospect matchl Cache miss, calling the API {"identifier_ type":"email" "identifier":"[EMAIL]"} {"correlatMWindsurf Teame 24 UTES 1 enanae...
|
NULL
|
-2114161513608283614
|
NULL
|
click
|
ocr
|
NULL
|
PhostormVIewINavicareCodeLaravelKeractorWindowFV f PhostormVIewINavicareCodeLaravelKeractorWindowFV faVsco.js°9 JY-20725-handle-HS-search-rate-limitProiect•.gitignoreT SyncCrmEntitiesTrait.phpC) CachedCrmServiceDecorator.onge audio.wav© HandleHub= nuospot-lournal-poll.log© RateLimitException.php© PaginationConfia.phdonounit.xmiis ttt.isclass Cllent extends Baseclient 1mpLements HubspotclientintertaceE oauth-private.keyE oauth-public.kev= storageE supervisord.pid121122123text-relav.isontests125FeatureIntearation• m Servicesv 7UnitActions130m ComnonentM ConficurationConsoleContractsD DomainMntoD EnumsD EventsD Exceptions137© EmailActivityImportExcC HandlerT est.php© RateLimitExceptionTes0 fixturesa GuardsD HelpersahiteIntearationsa InteractionsM.Jobs> ActivitvM AiAutomation>M Audiol• M AutomatedRenortsc) CreateResultsTect.ilC) RequestGenerateA.C) RequestGenerateR,© SendReportExpiring© SendReportJobTes@& SendReportMailJobe CondDonartNatGonMelondarMemmTacts naccod. 12 (todav 12:02nubu1etunction 1shubspotrateuimithrowable sel: 000l11 $e instanceof \GuzzleHttp\Exception\RequestExceptionreturn (int) $e->getCode === 429:recurn talsepubunc function parseRetrvAfterThrowable Sel: 1nt1f method existsSe.qetResponseheaders'?Sheaders = $e->getResponseHeaders() ?: []:svalue = Sheadens|"Retrv-Aften' ? Sheadens"retrv-aften' ? null:if (is arnav(Svalue)) {Svaluel0l 22 null.if (is_numeric($value)) 1return (int) $valve;Smessage = strtolower(Se->getMessageO):if (str_contains(Smessage, 'daily')) {recurn o00.if (str_ contains(Smessaqe, 'ten secondly')) {recurn 101if (str_ contains(Smessaqe, 'secondly')) {return 1Sthis->loa->warnina('[Hubspotl No retry-after header or known message, usina default'. [l'exception_class' => get_class($e),public function parseMessage(Throwable $e): stringOhuospot/serwice.onpA2A67 V3 A v 55=80Preparation tor kell.. In 40 m100% 5• Mon 11 May 14:15:04HandleHubspotRateLimitlestv=laravel.logA SF [jiminny@localhost]4 HS_local [jiminny@localhost]console [pRODl& console (EullA console [STAGING]X8 Cc W .*12026-05-11 11:14:401 Local.INFU:Looogle Calendars Failed tomateh channet torcalenoaniealenoario,:a.loeoo0-t.oo-al-DV-%e50,1,01"error":""domain": |"qlobal\".1"reason\": 1"push.webhookUrLNotHttpsl",("message) ": |"WebHook callback must be HTTPS:/webhook/calendar/aooqle?resourceTvpe=event\""message"* "WebHook callback must be HITPS: webhook/calendar/aoogle?resourcetvoezevent"}"} {"correlation_id":"524cb078-e2d4-4edd-b27f-7413b0226b04", "trace_id":"6be288f3-8d8f-454f-85cf-d057bfee5a3b"}[2026-05-11 11:14:46] Local.WARNING: [Calendar] Sync failed {"calendarId":"2676cb6d-f86c-427e-bf78-591e388e3cle", "code" :400, "reason" : "{"domain ". "alohal".\"reason|": \"push.webhookUrlNotHttps\""message)": \"WebHook callback must be HTTPS: /webhook/calendar/google?resourceType=event\""code": 400)"message": "WebHook callback must be HTTPS: /webhook/calendar/gooqle?r}"} {"correlation_id":"524cb078-e2d4-4edd-b27f-7413b0226b04" "trace_id":"6be288f3-8d8f-454f-85cf-d057bfee5a3b"}[2026-05-11 11:14:46] Local. INFO: [SociaLAccountServicel Fetching token f"socialAccount1d": 1421 "providen" "office"y f"correlation idw - [PHONE]-4909-b169-1[2026-05-11 11:14:46] local.INF0: [SocialAccountService] Token retrieved {"socialAccountId":1421, "provider" :"office"} {"correlation_id":"{7597207-7618-4909-b16912026-05-1114:14:46Local,INF0: [EncrvptedTokenManagerl Generating access token. {"mode"."legacv"} {"correlation id"."(7597207-7618-4909-b169-13d8342e3a12" "+*2026-05-11 11:14:4611Local.INFO: [Calendar] Processing sync {"calendarId":"9e8b1a2c-1a8f-42bd-b161-810fc0baf540" , "from":null, "to" :null, "delta" : "ROusmcdymMuZCBY2026-05-1111:14:4611LOCAPOWHIR ISocialAccountServicel Fetchino tokenE usochal Account Gla 2isonoy GenPUosDotWCOnelatiOn GWAW59N20Y 5Y158-490950162026-05-11 11:14:46112026-05-1111:14:4611LocaL.INF0: EncrvotedTokenlanager Generatina access token."mode":"Leqacy"? ""correlation id":"[CREDIT_CARD]-0169-15d8342e3a12"."tr[2026-05-11 11:14:46] Local.INF0: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider": "hubspot", "crm_owner":89, "team_id":2} {"correlatioLocal.INFO: [MS Office Calendar] Skipping delta syncfor daily mode "calendanld":"0e8h1a2c-1a8f-42hd-h161-810fc0baf540"> "cornelation1o11:14•551 local. TNSO.[MatchActivityCrmData] Starting CRM data matching {"activity":615092, "remote_search": true, "set_configuration":2,"old_state":{"Local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities" "purpose". "searchable-observer-update" "entitvId":615092} {"con[2026-05-11 11:14:56] Local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities" "entityId":615092, "collectionKey": "activitiocdLNE MatchAct vtviomDatal Pactcnants old state WactVilty" 615002 "nantlcinantc"aeMidl10002 "nsen fdl annll "contact idlani[2026-05-11 11:14:56] local.INF0: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"608ff761-7810-47e1-83e6[2026-05-11 11:14:56] local.INF0: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"608ff761-7810-47e1-83€[2026-05-11 11:14:56] local.INF0: [EncryptedTokenManager] Generating access token. {"mode:"Legacy"} {"correlation_id":"608ff761-7810-47e1-83e6-d9c4add1f787", "t112004-05-11 11.14•541 1ocol TМS0• [6amÎwnonPocolvenl Tntoanation12004-05-11 11•14•541|local. INFO: [Prospect matchl Cache miss, calling the API {"identifier_ type":"email" "identifier":"[EMAIL]"} {"correlatMWindsurf Teame 24 UTES 1 enanae...
|
18393
|
NULL
|
NULL
|
NULL
|
|
18396
|
795
|
15
|
2026-05-11T11:15:09.484973+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778498109484_m2.jpg...
|
PhpStorm
|
faVsco.js – laravel.log
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
JY-20725-handle-HS-search Project: faVsco.js, menu
JY-20725-handle-HS-search-rate-limit, menu
Start Listening for PHP Debug Connections
HandleHubspotRateLimitTest
Run 'HandleHubspotRateLimitTest'
Debug 'HandleHubspotRateLimitTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
2
67
3
Previous Highlighted Error
Next Highlighted Error
<?php
declare(strict_types=1);
namespace Jiminny\Services\Crm\Hubspot;
use HubSpot\Client\Crm\Deals\ApiException as DealApiException;
use HubSpot\Client\Crm\Contacts\ApiException as ContactApiException;
use HubSpot\Client\Crm\Companies\ApiException as CompanyApiException;
use HubSpot\Client\Crm\Contacts\Model\SimplePublicObjectWithAssociations as ContactsWithAssociations;
use HubSpot\Client\Crm\Companies\Model\SimplePublicObjectWithAssociations as CompaniesWithAssociations;
use HubSpot\Client\Crm\Deals\Model\SimplePublicObjectWithAssociations as DealWithAssociations;
use HubSpot\Client\Crm\Objects\Model\SimplePublicObjectInput;
use HubSpot\Client\Crm\Objects\Model\SimplePublicObjectWithAssociations as ObjectWithAssociations;
use HubSpot\Client\Crm\Pipelines\Model\Error;
use HubSpot\Client\Crm\Pipelines\Model\PipelineStage;
use HubSpot\Client\Crm\Properties\Model\Property;
use HubSpot\Discovery\Discovery;
use Jiminny\Exceptions\CrmException;
use Jiminny\Exceptions\RateLimitException;
use Jiminny\Exceptions\SocialAccountTokenInvalidException;
use Jiminny\Jobs\Crm\NoteObject;
use Jiminny\Models\Crm\Field;
use Jiminny\Services\Crm\BaseClient;
use Jiminny\Services\Crm\Hubspot\DTO\Response\Owner;
use Jiminny\Services\SocialAccountService;
use SevenShores\Hubspot\Exceptions\BadRequest;
use SevenShores\Hubspot\Exceptions\HubspotException;
use SevenShores\Hubspot\Factory;
use SevenShores\Hubspot\Http\Response;
use Jiminny\Services\Crm\Hubspot\Pagination\HubspotPaginationService;
use Illuminate\Support\Facades\Redis;
use Throwable;
/**
* @phpstan-type CrmFieldOption array{id:string, label:string, value?:string}
*/
class Client extends BaseClient implements HubspotClientInterface
{
public const string MIN_API_VERSION = '2';
public const string BASE_URL = '[URL_WITH_CREDENTIALS] T
* @param callable(): T $apiCall
* @return T
*
* @throws RateLimitException
*/
private function executeRequest(callable $apiCall)
{
$cacheKey = $this->getRateLimitCacheKey();
$cachedRetryAfter = Redis::get($cacheKey);
if (is_string($cachedRetryAfter) && is_numeric($cachedRetryAfter)) {
throw new RateLimitException(
'Hubspot rate limit (cached circuit-breaker)',
(int) $cachedRetryAfter,
);
}
try {
return $apiCall();
} catch (Throwable $e) {
if ($this->isHubspotRateLimit($e)) {
$retryAfter = $this->parseRetryAfter($e);
Redis::setex($cacheKey, $retryAfter, (string) $retryAfter);
$this->log->warning('[Hubspot] Received 429 from API', [
'team_id' => $this->config->team_id,
'config_id' => $this->config->getId(),
'retry_after' => $retryAfter,
'reason' => $e->getMessage(),
]);
throw new RateLimitException('Hubspot returned 429', $retryAfter, $e);
}
throw $e;
}
}
private function getRateLimitCacheKey(): string
{
return sprintf('hubspot:ratelimit:portal:%d', $this->config->getId());
}
public function isHubspotRateLimit(Throwable $e): bool
{
if ($e instanceof BadRequest
|| $e instanceof DealApiException
|| $e instanceof ContactApiException
|| $e instanceof CompanyApiException
|| $e instanceof \GuzzleHttp\Exception\RequestException
) {
return (int) $e->getCode() === 429;
}
return false;
}
public function parseRetryAfter(Throwable $e): int
{
if (method_exists($e, 'getResponseHeaders')) {
$headers = $e->getResponseHeaders() ?: [];
$value = $headers['Retry-After'] ?? $headers['retry-after'] ?? null;
if (is_array($value)) {
$value = $value[0] ?? null;
}
if (is_numeric($value)) {
return (int) $value;
}
}
$message = strtolower($e->getMessage());
if (str_contains($message, 'daily')) {
return 600;
}
if (str_contains($message, 'ten secondly')) {
return 10;
}
if (str_contains($message, 'secondly')) {
return 1;
}
$this->log->warning('[Hubspot] No retry-after header or known message, using default', [
'exception_class' => get_class($e),
'message' => $message,
]);
return 10;
}
public function parseMessage(Throwable $e): string
{
if (! method_exists($e, 'getResponseBody')) {
return '';
}
$body = $e->getResponseBody();
if (is_string($body)) {
$body = json_decode($body, true) ?? [];
}
if (! is_array($body)) {
return '';
}
return (string) ($body['message'] ?? '');
}
public function getMinimumApiVersion(): string
{
return self::MIN_API_VERSION;
}
public function getInstance(): Factory
{
return new Factory([
'key' => $this->accessToken,
'oauth2' => true,
'base_url' => $this->baseUrl,
]);
}
public function getNewInstance(): Discovery
{
return \HubSpot\Factory::createWithAccessToken($this->accessToken);
}
/**
* Secondly and daily limits for Hubspot API
*
* Product Tier: Free & Starter | Professional & Enterprise | API add-on (any tier)
* Burst: 100/10 seconds | 150/10 seconds | 200/10 seconds
* Daily: 250,000 | 500,000 | 1,000,000
*
* Official documentation states: The search endpoints are rate limited to five requests per second.
* Since with 5 RPS were still hitting secondly rate limits we lowered it to 4
*/
public function getPaginatedData(array $payload, string $type, int $offset = 0): array
{
$total = 0;
$lastId = null;
$rows = [];
foreach ($this->getPaginatedDataGenerator($payload, $type, $offset, $total, $lastId) as $row) {
$rows[] = $row;
}
return ['results' => $rows, 'total' => $total, 'last_record' => $lastId];
}
/**
* @throws HubspotException
* @throws SocialAccountTokenInvalidException
* @throws BadRequest
*/
public function getPaginatedDataGenerator(
array $payload,
string $type,
int $offset = 0,
int &$total = 0,
?string &$lastRecordId = null
): \Generator {
return $this->paginationService->getPaginatedDataGenerator(
$this,
$payload,
$type,
$offset,
$total,
$lastRecordId
);
}
/**
* Execute a search request against HubSpot CRM objects with rate limiting.
*
* @param string $objectType The object type ('deals', 'companies', 'contacts', 'calls')
* @param array<string, mixed> $payload The search payload with filters, sorts, properties, etc.
* @return array The search response with 'results', 'total', 'paging' keys
* @throws RateLimitException When rate limit is hit
* @throws HubspotException On API errors
*/
public function search(string $objectType, array $payload): array
{
$endpoint = self::BASE_URL . "/crm/v3/objects/{$objectType}/search";
return $this->executeRequest(function () use ($endpoint, $payload) {
$response = $this->getInstance()->getClient()->request('POST', $endpoint, ['json' => $payload]);
return $response->toArray();
});
}
/**
* @throws DealApiException
* @throws CrmException
*/
public function getOpportunityById(string $crmId, array $fields): array
{
try {
$deal = $this->getNewInstance()->crm()->deals()->basicApi()->getById(
$crmId,
implode(',', $fields),
'companies,contacts'
);
} catch (DealApiException $e) {
$this->log->info('[Hubspot] Failed to fetch opportunity', [
'crm_id' => $crmId,
'reason' => $e->getMessage(),
]);
throw $e;
}
if (! $deal instanceof DealWithAssociations) {
throw new CrmException('Deal not found');
}
return [
'id' => $deal->getId(),
'properties' => $deal->getProperties(),
'associations' => $deal->getAssociations(),
];
}
/**
* Generic batch read method for HubSpot objects
*
* @param string $objectType The object type ('deals', 'companies', 'contacts')
* @param array<string> $crmIds Array of HubSpot object IDs (max 100)
* @param array<string> $fields Array of property names to fetch
*
* @return array<string, array> Array keyed by CRM ID with object data
*/
private function batchReadObjects(string $objectType, array $crmIds, array $fields): array
{
if (empty($crmIds)) {
return [];
}
$this->validateBatchSize($objectType, $crmIds);
$this->ensureValidToken();
try {
$batchConfig = $this->createBatchConfiguration($objectType);
$batchReadRequest = $this->prepareBatchRequest($batchConfig, $crmIds, $fields);
$response = $batchConfig['api']->read($batchReadRequest);
$this->validateApiResponse($response, $objectType);
$results = $this->processApiResults($response);
$this->logBatchResults($objectType, $crmIds, $results);
return $results;
} catch (\Throwable $e) {
$this->handleBatchError($e, $objectType, $crmIds);
}
}
private function validateBatchSize(string $objectType, array $crmIds): void
{
if (count($crmIds) > 100) {
throw new \InvalidArgumentException("Batch size cannot exceed 100 {$objectType}");
}
}
private function createBatchConfiguration(string $objectType): array
{
$configurations = [
'deals' => [
'batchReadRequest' => new \HubSpot\Client\Crm\Deals\Model\BatchReadInputSimplePublicObjectId(),
'inputClass' => \HubSpot\Client\Crm\Deals\Model\SimplePublicObjectId::class,
'api' => $this->getNewInstance()->crm()->deals()->batchApi(),
],
'companies' => [
'batchReadRequest' => new \HubSpot\Client\Crm\Companies\Model\BatchReadInputSimplePublicObjectId(),
'inputClass' => \HubSpot\Client\Crm\Companies\Model\SimplePublicObjectId::class,
'api' => $this->getNewInstance()->crm()->companies()->batchApi(),
],
'contacts' => [
'batchReadRequest' => new \HubSpot\Client\Crm\Contacts\Model\BatchReadInputSimplePublicObjectId(),
'inputClass' => \HubSpot\Client\Crm\Contacts\Model\SimplePublicObjectId::class,
'api' => $this->getNewInstance()->crm()->contacts()->batchApi(),
],
];
if (! isset($configurations[$objectType])) {
throw new \InvalidArgumentException("Unsupported object type: {$objectType}");
}
return $configurations[$objectType];
}
private function prepareBatchRequest(array $batchConfig, array $crmIds, array $fields): object
{
$batchReadRequest = $batchConfig['batchReadRequest'];
$inputClass = $batchConfig['inputClass'];
$inputs = array_map(function ($crmId) use ($inputClass) {
$input = new $inputClass();
$input->setId($crmId);
return $input;
}, $crmIds);
$batchReadRequest->setInputs($inputs);
$batchReadRequest->setProperties($fields);
return $batchReadRequest;
}
private function validateApiResponse($response, string $objectType): void
{
if (! $response) {
throw new CrmException("HubSpot API returned null response for {$objectType} batch read");
}
}
private function processApiResults($response): array
{
$results = [];
$responseResults = $response->getResults();
if ($responseResults) {
foreach ($responseResults as $object) {
if ($object && $object->getId()) {
$results[$object->getId()] = [
'id' => $object->getId(),
'properties' => $object->getProperties() ?: [],
];
}
}
}
return $results;
}
private function logBatchResults(string $objectType, array $crmIds, array $results): void
{
$this->log->info("[HubSpot] Batch fetched {$objectType}", [
'requested_count' => count($crmIds),
'returned_count' => count($results),
'crm_ids' => $crmIds,
]);
}
private function handleBatchError(\Throwable $e, string $objectType, array $crmIds): void
{
$errorMessage = $e->getMessage() ?: 'Unknown error';
$errorTrace = $e->getTraceAsString() ?: 'No trace available';
$this->log->error("[HubSpot] Failed to batch fetch {$objectType}", [
'crm_ids' => $crmIds,
'error' => $errorMessage,
'trace' => $errorTrace,
]);
throw new CrmException("Failed to batch fetch {$objectType}: " . $errorMessage);
}
/**
* Batch read multiple opportunities by their CRM IDs
*
* @param array<string> $crmIds Array of HubSpot deal IDs (max 100)
* @param array<string> $fields Array of property names to fetch
*
* @return array<string, array> Array keyed by CRM ID with opportunity data
*/
public function getOpportunitiesByIds(array $crmIds, array $fields): array
{
return $this->batchReadObjects('deals', $crmIds, $fields);
}
/**
* Batch read multiple companies by their CRM IDs
*
* @param array<string> $crmIds Array of HubSpot company IDs (max 100)
* @param array<string> $fields Array of property names to fetch
*
* @return array<string, array> Array keyed by CRM ID with company data
*/
public function getCompaniesByIds(array $crmIds, array $fields): array
{
return $this->batchReadObjects('companies', $crmIds, $fields);
}
/**
* Batch read multiple contacts by their CRM IDs
*
* @param array<string> $crmIds Array of HubSpot contact IDs (max 100)
* @param array<string> $fields Array of property names to fetch
*
* @return array<string, array> Array keyed by CRM ID with contact data
*/
public function getContactsByIds(array $crmIds, array $fields): array
{
return $this->batchReadObjects('contacts', $crmIds, $fields);
}
/**
* @throws CompanyApiException
* @throws CrmException
*/
public function getAccountById(string $crmId, array $fields): array
{
try {
$company = $this->getNewInstance()->crm()->companies()->basicApi()->getById(
$crmId,
implode(',', $fields),
);
} catch (CompanyApiException $e) {
$this->log->info('[Hubspot] Failed to fetch account', [
'crm_id' => $crmId,
'reason' => $e->getMessage(),
]);
throw $e;
}
if (! $company instanceof CompaniesWithAssociations) {
throw new CrmException('Account not found');
}
return [
'id' => $company->getId(),
'properties' => $company->getProperties(),
];
}
/**
* @throws ContactApiException
* @throws CrmException
*/
public function getContactById(string $crmId, array $fields): array
{
try {
$contact = $this->getNewInstance()->crm()->contacts()->basicApi()->getById(
$crmId,
implode(',', $fields)
);
} catch (ContactApiException $e) {
$this->log->info('[Hubspot] Failed to fetch contact', [
'crm_id' => $crmId,
'reason' => $e->getMessage(),
]);
throw $e;
}
if (! $contact instanceof ContactsWithAssociations) {
throw new CrmException('Contact not found');
}
return [
'id' => $contact->getId(),
'properties' => $contact->getProperties(),
];
}
/**
* This is email search request that Hubspot offers as GET (more generous quota)
*/
public function getContactByEmail(string $email, array $fields = []): array
{
try {
$contact = $this->getNewInstance()->crm()->contacts()->basicApi()->getById(
$email,
implode(',', $fields),
null,
false,
'email'
);
return [
'id' => $contact->getId(),
'properties' => $contact->getProperties(),
];
} catch (ContactApiException $e) {
$this->log->info('[Hubspot] Failed to fetch contact', [
'email' => $email,
'reason' => $e->getMessage(),
]);
return [];
}
}
/**
* @throws CrmException
*/
public function fetchProperty(string $objectType, string $propertyId): Property
{
$result = $this->getNewInstance()->crm()->properties()->coreApi()->getByName($objectType, $propertyId);
if (! $result instanceof Property) {
$this->log->error('[Hubspot] Failed to fetch property', [
'object_type' => $objectType,
'property_id' => $propertyId,
'reason' => $result->getMessage(),
]);
throw new CrmException('Failed to fetch property');
}
return $result;
}
/**
* @return array<CrmFieldOption>
*/
public function fetchPropertyOptions(string $objectType, string $propertyId): array
{
/** @var array<CrmFieldOption> */
return $this->fetchProperty($objectType, $propertyId)->getOptions();
}
/**
* @return array<array{id:string, label:string, deleted:bool}>
*/
public function fetchCallDispositions(): array
{
/** @var Response $response */
$response = $this->getInstance()->engagements()->getCallDispositions();
/**
* @var array<array{
* id:string,
* label:string,
* deleted: bool
* }>
*/
return $response->toArray();
}
/**
* @return array<CrmFieldOption>
*/
public function fetchOpportunityPipelineStages(): array
{
$stages = [];
$apiResponse = $this->getNewInstance()->crm()->pipelines()->pipelinesApi()->getAll('deals');
if ($apiResponse instanceof Error) {
$this->log->error('[Hubspot] Failed to fetch opportunity pipelines', [
'reason' => $apiResponse->getMessage(),
]);
return [];
}
foreach ($apiResponse->getResults() as $pipeline) {
$pipelineStages = array_map(
static function (PipelineStage $stage) {
return [
'id' => $stage->getId(),
'label' => $stage->getLabel(),
];
},
$pipeline->getStages()
);
$stages = array_merge($stages, $pipelineStages);
}
return $stages;
}
public function fetchOpportunityPipelines(): array
{
$pipelines = [];
try {
$apiResponse = $this->makeRequest('/crm/v3/pipelines/deals');
} catch (\Exception $e) {
$this->log->info('[Hubspot] Failed to fetch opportunity pipelines', [
'reason' => $e->getMessage(),
]);
return [];
}
$response = $apiResponse->toArray();
foreach ($response['results'] as $pipeline) {
$pipelines[] = [
'id' => $pipeline['id'],
'label' => $pipeline['label'],
];
}
return $pipelines;
}
/**
* @return array<CrmFieldOption>
*/
public function fetchMeetingOutcomeFieldOptions(Field $field): array
{
return $field->getCrmProviderId() === 'meetingOutcome'
? $this->fetchMeetingOutcomeTypes()
: $this->fetchCallActivityTypes();
}
public function fetchMeetingOutcomeTypes(): array
{
return $this->extractMeetingTypeOptions(
'[URL_WITH_CREDENTIALS] Response $response */
$response = $this->getInstance()
->getClient()
->request('GET', $endpoint);
/**
* @var array<array{
* value: string,
* label: string,
* displayOrder: int
* }> $optionData
*/
$optionData = $response->toArray()['options'] ?? [];
$options = [];
foreach ($optionData as $item) {
$options[] = [
'id' => $item['value'],
'value' => $item['value'],
'label' => $item['label'],
'display_order' => $item['displayOrder'],
];
}
return $options;
}
/**
* @return array<CrmFieldOption>
*/
public function fetchDispositionFieldOptions(): array
{
$options = [];
$dispositions = $this->fetchCallDispositions();
foreach ($dispositions as $disposition) {
if ($disposition['deleted'] !== false) {
continue;
}
$option['value'] = $disposition['id'];
$option['id'] = $disposition['id'];
$option['label'] = $disposition['label'];
$options[] = $option;
}
return $options;
}
/**
* @return array<CrmFieldOption>
*/
public function fetchOpportunityFieldOptions(Field $field): array
{
if ($field->isStageField()) {
return $this->fetchOpportunityPipelineStages();
}
if ($field->isPipelineField()) {
return $this->fetchOpportunityPipelines();
}
return $this->fetchPropertyOptions('deals', $field->getCrmProviderId());
}
/**
* @throws BadRequest
* @throws HubspotException
*/
public function makeRequest(string $endpoint, $method = 'GET', $payload = [], ?string $queryString = null)
{
$endpoint = self::BASE_URL . $endpoint;
if ($method === 'GET') {
return $this->getInstance()->getClient()?->request(
method: $method,
endpoint: $endpoint,
query_string: $queryString
);
} else {
return $this->getInstance()->getClient()->request($method, $endpoint, [
'json' => ($payload),
]);
}
}
/**
* @throws BadRequest
* @throws HubspotException
*/
public function createMeeting(array $payload): Response
{
$endpoint = '/crm/v3/objects/meetings';
return $this->makeRequest($endpoint, 'POST', $payload);
}
/**
* @throws BadRequest
* @throws HubspotException
*/
public function updateMeeting(string $meetingId, array $payload): Response
{
$endpoint = '/crm/v3/objects/meetings/' . $meetingId;
return $this->makeRequest($endpoint, 'PATCH', $payload);
}
/**
* @throws \Exception
*/
public function createNote(
string $body,
string $ownerId,
int $timestamp,
string $objectId,
NoteObject $noteObject
): ?string {
try {
$noteInput = new SimplePublicObjectInput([
'properties' => [
'hs_note_body' => $body,
'hubspot_owner_id' => $ownerId,
'hs_timestamp' => $timestamp,
],
]);
// Create note
$note = $this->getNewInstance()->crm()->objects()->basicApi()->create('note', $noteInput);
$this->getNewInstance()->crm()->objects()->associationsApi()->create(
'note',
$note->getId(),
$this->getNoteObject($noteObject),
$objectId,
$this->getNoteAssociationType($noteObject),
);
return $note->getId();
} catch (\Exception $e) {
$this->log->error('[Hubspot] Failed to create note', [
'objectId' => $objectId,
'noteObject' => $noteObject->getObjectType(),
'reason' => $e->getMessage(),
]);
\Sentry::captureException($e);
}
return null;
}
public function updateEngagement(string $objectId, array $engagement, array $metadata): void
{
$this->getInstance()->engagements()->update($objectId, $engagement, $metadata);
}
public function getEngagementData(string $engagementId): array
{
$engagement = $this->getInstance()->engagements()->get($engagementId);
return $engagement->toArray();
}
public function createEngagement(array $engagement, array $associations, array $metadata): Response
{
return $this->getInstance()
->engagements()
->create($engagement, $associations, $metadata);
}
public function isUnauthorizedException(\Exception $e): bool
{
// Check for specific HubSpot API exception types first
if ($e instanceof BadRequest) {
// BadRequest can contain 401 status codes
return $e->getCode() === 401;
}
// Check for HTTP client exceptions with status codes
if ($e instanceof \GuzzleHttp\Exception\RequestException && $e->hasResponse()) {
$response = $e->getResponse();
if ($response !== null) {
return $response->getStatusCode() === 401;
}
}
// Check for Guzzle HTTP exceptions
if ($e instanceof \GuzzleHttp\Exception\ClientException) {
return $e->getCode() === 401;
}
// Fallback to string matching as last resort, but be more specific
$message = strtolower($e->getMessage());
return str_contains($message, '401 unauthorized') ||
str_contains($message, 'http 401') ||
str_contains($message, 'status code 401') ||
(preg_match('/\b401\b/', $message) && str_contains($message, 'unauthorized'));
}
/**
* Validates and refreshes the access token if needed before API requests.
* This ensures long-running processes don't fail due to token expiration.
*
* @throws SocialAccountTokenInvalidException
*/
public function ensureValidToken(): void
{
if ($this->oauthAccount === null) {
return;
}
$newToken = $this->tokenManager->ensureValidToken($this->oauthAccount);
if ($newToken !== null) {
$this->accessToken = $newToken;
}
}
public function getConfig()
{
return $this->config;
}
// returns only active (archived=false)
public function getOwners(): array
{
return $this->getNewInstance()->crm()->owners()->getAll();
}
/**
* @param bool $archived
*
* @return array<Owner>|[]
*/
public function getOwnersArchived(bool $archived = true): array
{
$endpoint = '/crm/v3/owners';
$queryParams = [
'archived' => $archived ? 'true' : 'false',
];
$queryString = http_build_query($queryParams);
$owners = [];
try {
$response = $this->makeRequest(endpoint: $endpoint, queryString: $queryString);
$responseData = $response?->toArray();
foreach ($responseData['results'] as $result) {
try {
$owners[] = Owner::create($result);
} catch (Throwable $e) {
$this->log->error('[HubSpot] Failed to process owner data', [
'result' => $result,
'error' => $e->getMessage(),
]);
continue;
}
}
} catch (Throwable $e) {
$this->log->error('HubSpot] Failed to fetch owners', [
'archived' => $archived,
'error' => $e->getMessage(),
]);
return [];
}
return $owners;
}
public function getMeeting(string $engagementId): ObjectWithAssociations
{
return $this->getNewInstance()->crm()->objects()->basicApi()
->getById('meeting', $engagementId, null, 'contact,company,deal');
}
public function deleteEngagement(string $engagementId): void
{
$this->getInstance()->engagements()->delete((int) $engagementId);
}
public function getAssociationsData(array $ids, string $fromObject, string $toObject): array
{
$associationData = [];
$idChunks = array_chunk($ids, self::ASSOCIATIONS_BATCH_SIZE_LIMIT);
foreach ($idChunks as $idChunk) {
try {
$batchInput = new \HubSpot\Client\Crm\Associations\Model\BatchInputPublicObjectId();
$batchInput->setInputs(array_map(function ($id) {
$publicObjectId = new \HubSpot\Client\Crm\Associations\Model\PublicObjectId();
$publicObjectId->setId($id);
return $publicObjectId;
}, $idChunk));
$associatedObjectsData = $this
->getNewInstance()
->crm()
->associations()
->batchApi()
->read($fromObject, $toObject, $batchInput);
if ($associatedObjectsData instanceof \HubSpot\Client\Crm\Associations\Model\BatchResponsePublicAssociationMulti) {
foreach ($associatedObjectsData->getResults() as $association) {
$from = $association->getFrom()->getId();
$toAssociations = $association->getTo();
if (! empty($toAssociations)) {
$associationData[$from] = array_map(function ($item) {
return $item->getId();
}, $toAssociations);
}
}
}
// } catch (RateLimitException $e) {
// throw $e;
} catch (\Exception $e) {
$this->log->error('[Hubspot] Failed to fetch associations', [
'from_object' => $fromObject,
'to_object' => $toObject,
'reason' => $e->getMessage(),
]);
}
}
return $associationData;
}
/**
* @throws \Exception
*/
private function getNoteAssociationType(NoteObject $noteObject): string
{
return match($noteObject) {
NoteObject::Opportunity => 'note_to_deal',
NoteObject::Lead, NoteObject::Contact => 'note_to_contact', // or 'note_to_lead' if your portal supports it
NoteObject::Account => 'note_to_company',
NoteObject::Call, NoteObject::Event => throw new \Exception('Not supported'),
};
}
/**
* @throws \Exception
*/
private function getNoteObject(NoteObject $noteObject): string
{
return match($noteObject) {
NoteObject::Opportunity => 'deal',
NoteObject::Lead, NoteObject::Contact => 'contact',
NoteObject::Account => 'company',
NoteObject::Call, NoteObject::Event => throw new \Exception('Not supported'),
};
}
public function addAssociations(string $objectType, string $associationType, array $payload): Response
{
$endpoint = "/crm/v4/associations/$objectType/$associationType/batch/create";
return $this->makeRequest($endpoint, 'POST', $payload);
}
public function removeAssociations(string $objectType, string $associationType, array $payload): Response
{
$endpoint = "/crm/v4/associations/$objectType/$associationType/batch/archive";
return $this->makeRequest($endpoint, 'POST', $payload);
}
}...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"bounds":{"left":0.025930852,"top":0.019952115,"width":0.03856383,"height":0.025538707},"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JY-20725-handle-HS-search-rate-limit, menu","depth":5,"bounds":{"left":0.064494684,"top":0.019952115,"width":0.09541223,"height":0.025538707},"on_screen":true,"help_text":"Git Branch: JY-20725-handle-HS-search-rate-limit","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"bounds":{"left":0.82413566,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"HandleHubspotRateLimitTest","depth":6,"bounds":{"left":0.8394282,"top":0.019952115,"width":0.076130316,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'HandleHubspotRateLimitTest'","depth":6,"bounds":{"left":0.9155585,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Debug 'HandleHubspotRateLimitTest'","depth":6,"bounds":{"left":0.9268617,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More Actions","depth":6,"bounds":{"left":0.9381649,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JetBrains AI","depth":5,"bounds":{"left":0.96609044,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Search Everywhere","depth":5,"bounds":{"left":0.9773936,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"IDE and Project Settings","depth":5,"bounds":{"left":0.9886968,"top":0.019952115,"width":0.011303186,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.042220745,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"2","depth":4,"bounds":{"left":0.50731385,"top":0.17478053,"width":0.007978723,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"67","depth":4,"bounds":{"left":0.51728725,"top":0.17478053,"width":0.009973404,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"3","depth":4,"bounds":{"left":0.52925533,"top":0.17478053,"width":0.007978723,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"bounds":{"left":0.53889626,"top":0.17318435,"width":0.00731383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Next Highlighted Error","depth":4,"bounds":{"left":0.5462101,"top":0.17318435,"width":0.006981383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Services\\Crm\\Hubspot;\n\nuse HubSpot\\Client\\Crm\\Deals\\ApiException as DealApiException;\nuse HubSpot\\Client\\Crm\\Contacts\\ApiException as ContactApiException;\nuse HubSpot\\Client\\Crm\\Companies\\ApiException as CompanyApiException;\nuse HubSpot\\Client\\Crm\\Contacts\\Model\\SimplePublicObjectWithAssociations as ContactsWithAssociations;\nuse HubSpot\\Client\\Crm\\Companies\\Model\\SimplePublicObjectWithAssociations as CompaniesWithAssociations;\nuse HubSpot\\Client\\Crm\\Deals\\Model\\SimplePublicObjectWithAssociations as DealWithAssociations;\nuse HubSpot\\Client\\Crm\\Objects\\Model\\SimplePublicObjectInput;\nuse HubSpot\\Client\\Crm\\Objects\\Model\\SimplePublicObjectWithAssociations as ObjectWithAssociations;\nuse HubSpot\\Client\\Crm\\Pipelines\\Model\\Error;\nuse HubSpot\\Client\\Crm\\Pipelines\\Model\\PipelineStage;\nuse HubSpot\\Client\\Crm\\Properties\\Model\\Property;\nuse HubSpot\\Discovery\\Discovery;\nuse Jiminny\\Exceptions\\CrmException;\nuse Jiminny\\Exceptions\\RateLimitException;\nuse Jiminny\\Exceptions\\SocialAccountTokenInvalidException;\nuse Jiminny\\Jobs\\Crm\\NoteObject;\nuse Jiminny\\Models\\Crm\\Field;\nuse Jiminny\\Services\\Crm\\BaseClient;\nuse Jiminny\\Services\\Crm\\Hubspot\\DTO\\Response\\Owner;\nuse Jiminny\\Services\\SocialAccountService;\nuse SevenShores\\Hubspot\\Exceptions\\BadRequest;\nuse SevenShores\\Hubspot\\Exceptions\\HubspotException;\nuse SevenShores\\Hubspot\\Factory;\nuse SevenShores\\Hubspot\\Http\\Response;\nuse Jiminny\\Services\\Crm\\Hubspot\\Pagination\\HubspotPaginationService;\nuse Illuminate\\Support\\Facades\\Redis;\nuse Throwable;\n\n/**\n * @phpstan-type CrmFieldOption array{id:string, label:string, value?:string}\n */\nclass Client extends BaseClient implements HubspotClientInterface\n{\n public const string MIN_API_VERSION = '2';\n\n public const string BASE_URL = 'https://api.hubapi.com';\n\n public const int ASSOCIATIONS_BATCH_SIZE_LIMIT = 1000;\n\n private HubspotPaginationService $paginationService;\n private HubspotTokenManager $tokenManager;\n\n public function __construct(\n SocialAccountService $socialAccountService,\n HubspotPaginationService $paginationService,\n HubspotTokenManager $tokenManager\n ) {\n parent::__construct($socialAccountService);\n $this->paginationService = $paginationService;\n $this->tokenManager = $tokenManager;\n\n $this->setBaseUrl(self::BASE_URL);\n $this->setVersion(self::MIN_API_VERSION);\n }\n\n /**\n * Reacts to a rate limits (429) from HubSpot by translating it\n * into a RateLimitException carrying retry_after.\n *\n * Wrap any outbound HubSpot call (SDK or raw HTTP) like:\n *\n * $this->executeRequest(fn () => $this->getNewInstance()->crm()->...);\n *\n * @template T\n * @param callable(): T $apiCall\n * @return T\n *\n * @throws RateLimitException\n */\n private function executeRequest(callable $apiCall)\n {\n $cacheKey = $this->getRateLimitCacheKey();\n\n $cachedRetryAfter = Redis::get($cacheKey);\n if (is_string($cachedRetryAfter) && is_numeric($cachedRetryAfter)) {\n throw new RateLimitException(\n 'Hubspot rate limit (cached circuit-breaker)',\n (int) $cachedRetryAfter,\n );\n }\n\n try {\n return $apiCall();\n } catch (Throwable $e) {\n if ($this->isHubspotRateLimit($e)) {\n $retryAfter = $this->parseRetryAfter($e);\n\n Redis::setex($cacheKey, $retryAfter, (string) $retryAfter);\n\n $this->log->warning('[Hubspot] Received 429 from API', [\n 'team_id' => $this->config->team_id,\n 'config_id' => $this->config->getId(),\n 'retry_after' => $retryAfter,\n 'reason' => $e->getMessage(),\n ]);\n\n throw new RateLimitException('Hubspot returned 429', $retryAfter, $e);\n }\n\n throw $e;\n }\n }\n\n private function getRateLimitCacheKey(): string\n {\n return sprintf('hubspot:ratelimit:portal:%d', $this->config->getId());\n }\n\n public function isHubspotRateLimit(Throwable $e): bool\n {\n if ($e instanceof BadRequest\n || $e instanceof DealApiException\n || $e instanceof ContactApiException\n || $e instanceof CompanyApiException\n || $e instanceof \\GuzzleHttp\\Exception\\RequestException\n ) {\n return (int) $e->getCode() === 429;\n }\n\n return false;\n }\n\n public function parseRetryAfter(Throwable $e): int\n {\n if (method_exists($e, 'getResponseHeaders')) {\n $headers = $e->getResponseHeaders() ?: [];\n $value = $headers['Retry-After'] ?? $headers['retry-after'] ?? null;\n if (is_array($value)) {\n $value = $value[0] ?? null;\n }\n if (is_numeric($value)) {\n return (int) $value;\n }\n }\n\n $message = strtolower($e->getMessage());\n\n if (str_contains($message, 'daily')) {\n return 600;\n }\n if (str_contains($message, 'ten secondly')) {\n return 10;\n }\n if (str_contains($message, 'secondly')) {\n return 1;\n }\n\n $this->log->warning('[Hubspot] No retry-after header or known message, using default', [\n 'exception_class' => get_class($e),\n 'message' => $message,\n ]);\n\n return 10;\n }\n\n public function parseMessage(Throwable $e): string\n {\n if (! method_exists($e, 'getResponseBody')) {\n return '';\n }\n\n $body = $e->getResponseBody();\n if (is_string($body)) {\n $body = json_decode($body, true) ?? [];\n }\n\n if (! is_array($body)) {\n return '';\n }\n\n return (string) ($body['message'] ?? '');\n }\n\n public function getMinimumApiVersion(): string\n {\n return self::MIN_API_VERSION;\n }\n\n public function getInstance(): Factory\n {\n return new Factory([\n 'key' => $this->accessToken,\n 'oauth2' => true,\n 'base_url' => $this->baseUrl,\n ]);\n }\n\n public function getNewInstance(): Discovery\n {\n return \\HubSpot\\Factory::createWithAccessToken($this->accessToken);\n }\n\n /**\n * Secondly and daily limits for Hubspot API\n *\n * Product Tier: Free & Starter | Professional & Enterprise | API add-on (any tier)\n * Burst: 100/10 seconds | 150/10 seconds | 200/10 seconds\n * Daily: 250,000 | 500,000 | 1,000,000\n *\n * Official documentation states: The search endpoints are rate limited to five requests per second.\n * Since with 5 RPS were still hitting secondly rate limits we lowered it to 4\n */\n public function getPaginatedData(array $payload, string $type, int $offset = 0): array\n {\n $total = 0;\n $lastId = null;\n $rows = [];\n foreach ($this->getPaginatedDataGenerator($payload, $type, $offset, $total, $lastId) as $row) {\n $rows[] = $row;\n }\n\n return ['results' => $rows, 'total' => $total, 'last_record' => $lastId];\n }\n\n /**\n * @throws HubspotException\n * @throws SocialAccountTokenInvalidException\n * @throws BadRequest\n */\n public function getPaginatedDataGenerator(\n array $payload,\n string $type,\n int $offset = 0,\n int &$total = 0,\n ?string &$lastRecordId = null\n ): \\Generator {\n return $this->paginationService->getPaginatedDataGenerator(\n $this,\n $payload,\n $type,\n $offset,\n $total,\n $lastRecordId\n );\n }\n\n /**\n * Execute a search request against HubSpot CRM objects with rate limiting.\n *\n * @param string $objectType The object type ('deals', 'companies', 'contacts', 'calls')\n * @param array<string, mixed> $payload The search payload with filters, sorts, properties, etc.\n * @return array The search response with 'results', 'total', 'paging' keys\n * @throws RateLimitException When rate limit is hit\n * @throws HubspotException On API errors\n */\n public function search(string $objectType, array $payload): array\n {\n $endpoint = self::BASE_URL . \"/crm/v3/objects/{$objectType}/search\";\n\n return $this->executeRequest(function () use ($endpoint, $payload) {\n $response = $this->getInstance()->getClient()->request('POST', $endpoint, ['json' => $payload]);\n\n return $response->toArray();\n });\n }\n\n /**\n * @throws DealApiException\n * @throws CrmException\n */\n public function getOpportunityById(string $crmId, array $fields): array\n {\n try {\n $deal = $this->getNewInstance()->crm()->deals()->basicApi()->getById(\n $crmId,\n implode(',', $fields),\n 'companies,contacts'\n );\n } catch (DealApiException $e) {\n $this->log->info('[Hubspot] Failed to fetch opportunity', [\n 'crm_id' => $crmId,\n 'reason' => $e->getMessage(),\n ]);\n\n throw $e;\n }\n\n if (! $deal instanceof DealWithAssociations) {\n throw new CrmException('Deal not found');\n }\n\n return [\n 'id' => $deal->getId(),\n 'properties' => $deal->getProperties(),\n 'associations' => $deal->getAssociations(),\n ];\n }\n\n /**\n * Generic batch read method for HubSpot objects\n *\n * @param string $objectType The object type ('deals', 'companies', 'contacts')\n * @param array<string> $crmIds Array of HubSpot object IDs (max 100)\n * @param array<string> $fields Array of property names to fetch\n *\n * @return array<string, array> Array keyed by CRM ID with object data\n */\n private function batchReadObjects(string $objectType, array $crmIds, array $fields): array\n {\n if (empty($crmIds)) {\n return [];\n }\n\n $this->validateBatchSize($objectType, $crmIds);\n $this->ensureValidToken();\n\n try {\n $batchConfig = $this->createBatchConfiguration($objectType);\n $batchReadRequest = $this->prepareBatchRequest($batchConfig, $crmIds, $fields);\n $response = $batchConfig['api']->read($batchReadRequest);\n\n $this->validateApiResponse($response, $objectType);\n\n $results = $this->processApiResults($response);\n $this->logBatchResults($objectType, $crmIds, $results);\n\n return $results;\n } catch (\\Throwable $e) {\n $this->handleBatchError($e, $objectType, $crmIds);\n }\n }\n\n private function validateBatchSize(string $objectType, array $crmIds): void\n {\n if (count($crmIds) > 100) {\n throw new \\InvalidArgumentException(\"Batch size cannot exceed 100 {$objectType}\");\n }\n }\n\n private function createBatchConfiguration(string $objectType): array\n {\n $configurations = [\n 'deals' => [\n 'batchReadRequest' => new \\HubSpot\\Client\\Crm\\Deals\\Model\\BatchReadInputSimplePublicObjectId(),\n 'inputClass' => \\HubSpot\\Client\\Crm\\Deals\\Model\\SimplePublicObjectId::class,\n 'api' => $this->getNewInstance()->crm()->deals()->batchApi(),\n ],\n 'companies' => [\n 'batchReadRequest' => new \\HubSpot\\Client\\Crm\\Companies\\Model\\BatchReadInputSimplePublicObjectId(),\n 'inputClass' => \\HubSpot\\Client\\Crm\\Companies\\Model\\SimplePublicObjectId::class,\n 'api' => $this->getNewInstance()->crm()->companies()->batchApi(),\n ],\n 'contacts' => [\n 'batchReadRequest' => new \\HubSpot\\Client\\Crm\\Contacts\\Model\\BatchReadInputSimplePublicObjectId(),\n 'inputClass' => \\HubSpot\\Client\\Crm\\Contacts\\Model\\SimplePublicObjectId::class,\n 'api' => $this->getNewInstance()->crm()->contacts()->batchApi(),\n ],\n ];\n\n if (! isset($configurations[$objectType])) {\n throw new \\InvalidArgumentException(\"Unsupported object type: {$objectType}\");\n }\n\n return $configurations[$objectType];\n }\n\n private function prepareBatchRequest(array $batchConfig, array $crmIds, array $fields): object\n {\n $batchReadRequest = $batchConfig['batchReadRequest'];\n $inputClass = $batchConfig['inputClass'];\n\n $inputs = array_map(function ($crmId) use ($inputClass) {\n $input = new $inputClass();\n $input->setId($crmId);\n\n return $input;\n }, $crmIds);\n\n $batchReadRequest->setInputs($inputs);\n $batchReadRequest->setProperties($fields);\n\n return $batchReadRequest;\n }\n\n private function validateApiResponse($response, string $objectType): void\n {\n if (! $response) {\n throw new CrmException(\"HubSpot API returned null response for {$objectType} batch read\");\n }\n }\n\n private function processApiResults($response): array\n {\n $results = [];\n $responseResults = $response->getResults();\n\n if ($responseResults) {\n foreach ($responseResults as $object) {\n if ($object && $object->getId()) {\n $results[$object->getId()] = [\n 'id' => $object->getId(),\n 'properties' => $object->getProperties() ?: [],\n ];\n }\n }\n }\n\n return $results;\n }\n\n private function logBatchResults(string $objectType, array $crmIds, array $results): void\n {\n $this->log->info(\"[HubSpot] Batch fetched {$objectType}\", [\n 'requested_count' => count($crmIds),\n 'returned_count' => count($results),\n 'crm_ids' => $crmIds,\n ]);\n }\n\n private function handleBatchError(\\Throwable $e, string $objectType, array $crmIds): void\n {\n $errorMessage = $e->getMessage() ?: 'Unknown error';\n $errorTrace = $e->getTraceAsString() ?: 'No trace available';\n\n $this->log->error(\"[HubSpot] Failed to batch fetch {$objectType}\", [\n 'crm_ids' => $crmIds,\n 'error' => $errorMessage,\n 'trace' => $errorTrace,\n ]);\n\n throw new CrmException(\"Failed to batch fetch {$objectType}: \" . $errorMessage);\n }\n\n /**\n * Batch read multiple opportunities by their CRM IDs\n *\n * @param array<string> $crmIds Array of HubSpot deal IDs (max 100)\n * @param array<string> $fields Array of property names to fetch\n *\n * @return array<string, array> Array keyed by CRM ID with opportunity data\n */\n public function getOpportunitiesByIds(array $crmIds, array $fields): array\n {\n return $this->batchReadObjects('deals', $crmIds, $fields);\n }\n\n /**\n * Batch read multiple companies by their CRM IDs\n *\n * @param array<string> $crmIds Array of HubSpot company IDs (max 100)\n * @param array<string> $fields Array of property names to fetch\n *\n * @return array<string, array> Array keyed by CRM ID with company data\n */\n public function getCompaniesByIds(array $crmIds, array $fields): array\n {\n return $this->batchReadObjects('companies', $crmIds, $fields);\n }\n\n /**\n * Batch read multiple contacts by their CRM IDs\n *\n * @param array<string> $crmIds Array of HubSpot contact IDs (max 100)\n * @param array<string> $fields Array of property names to fetch\n *\n * @return array<string, array> Array keyed by CRM ID with contact data\n */\n public function getContactsByIds(array $crmIds, array $fields): array\n {\n return $this->batchReadObjects('contacts', $crmIds, $fields);\n }\n\n /**\n * @throws CompanyApiException\n * @throws CrmException\n */\n public function getAccountById(string $crmId, array $fields): array\n {\n try {\n $company = $this->getNewInstance()->crm()->companies()->basicApi()->getById(\n $crmId,\n implode(',', $fields),\n );\n } catch (CompanyApiException $e) {\n $this->log->info('[Hubspot] Failed to fetch account', [\n 'crm_id' => $crmId,\n 'reason' => $e->getMessage(),\n ]);\n\n throw $e;\n }\n\n if (! $company instanceof CompaniesWithAssociations) {\n throw new CrmException('Account not found');\n }\n\n return [\n 'id' => $company->getId(),\n 'properties' => $company->getProperties(),\n ];\n }\n\n /**\n * @throws ContactApiException\n * @throws CrmException\n */\n public function getContactById(string $crmId, array $fields): array\n {\n try {\n $contact = $this->getNewInstance()->crm()->contacts()->basicApi()->getById(\n $crmId,\n implode(',', $fields)\n );\n } catch (ContactApiException $e) {\n $this->log->info('[Hubspot] Failed to fetch contact', [\n 'crm_id' => $crmId,\n 'reason' => $e->getMessage(),\n ]);\n\n throw $e;\n }\n\n if (! $contact instanceof ContactsWithAssociations) {\n throw new CrmException('Contact not found');\n }\n\n return [\n 'id' => $contact->getId(),\n 'properties' => $contact->getProperties(),\n ];\n }\n\n /**\n * This is email search request that Hubspot offers as GET (more generous quota)\n */\n public function getContactByEmail(string $email, array $fields = []): array\n {\n try {\n $contact = $this->getNewInstance()->crm()->contacts()->basicApi()->getById(\n $email,\n implode(',', $fields),\n null,\n false,\n 'email'\n );\n\n return [\n 'id' => $contact->getId(),\n 'properties' => $contact->getProperties(),\n ];\n } catch (ContactApiException $e) {\n $this->log->info('[Hubspot] Failed to fetch contact', [\n 'email' => $email,\n 'reason' => $e->getMessage(),\n ]);\n\n return [];\n }\n }\n\n /**\n * @throws CrmException\n */\n public function fetchProperty(string $objectType, string $propertyId): Property\n {\n $result = $this->getNewInstance()->crm()->properties()->coreApi()->getByName($objectType, $propertyId);\n\n if (! $result instanceof Property) {\n $this->log->error('[Hubspot] Failed to fetch property', [\n 'object_type' => $objectType,\n 'property_id' => $propertyId,\n 'reason' => $result->getMessage(),\n ]);\n\n throw new CrmException('Failed to fetch property');\n }\n\n return $result;\n }\n\n /**\n * @return array<CrmFieldOption>\n */\n public function fetchPropertyOptions(string $objectType, string $propertyId): array\n {\n /** @var array<CrmFieldOption> */\n return $this->fetchProperty($objectType, $propertyId)->getOptions();\n }\n\n /**\n * @return array<array{id:string, label:string, deleted:bool}>\n */\n public function fetchCallDispositions(): array\n {\n /** @var Response $response */\n $response = $this->getInstance()->engagements()->getCallDispositions();\n\n /**\n * @var array<array{\n * id:string,\n * label:string,\n * deleted: bool\n * }>\n */\n return $response->toArray();\n }\n\n /**\n * @return array<CrmFieldOption>\n */\n public function fetchOpportunityPipelineStages(): array\n {\n $stages = [];\n $apiResponse = $this->getNewInstance()->crm()->pipelines()->pipelinesApi()->getAll('deals');\n\n if ($apiResponse instanceof Error) {\n $this->log->error('[Hubspot] Failed to fetch opportunity pipelines', [\n 'reason' => $apiResponse->getMessage(),\n ]);\n\n return [];\n }\n\n foreach ($apiResponse->getResults() as $pipeline) {\n $pipelineStages = array_map(\n static function (PipelineStage $stage) {\n return [\n 'id' => $stage->getId(),\n 'label' => $stage->getLabel(),\n ];\n },\n $pipeline->getStages()\n );\n\n $stages = array_merge($stages, $pipelineStages);\n }\n\n return $stages;\n }\n\n public function fetchOpportunityPipelines(): array\n {\n $pipelines = [];\n\n try {\n $apiResponse = $this->makeRequest('/crm/v3/pipelines/deals');\n } catch (\\Exception $e) {\n $this->log->info('[Hubspot] Failed to fetch opportunity pipelines', [\n 'reason' => $e->getMessage(),\n ]);\n\n return [];\n }\n\n $response = $apiResponse->toArray();\n\n foreach ($response['results'] as $pipeline) {\n $pipelines[] = [\n 'id' => $pipeline['id'],\n 'label' => $pipeline['label'],\n ];\n }\n\n return $pipelines;\n }\n\n /**\n * @return array<CrmFieldOption>\n */\n public function fetchMeetingOutcomeFieldOptions(Field $field): array\n {\n return $field->getCrmProviderId() === 'meetingOutcome'\n ? $this->fetchMeetingOutcomeTypes()\n : $this->fetchCallActivityTypes();\n }\n\n public function fetchMeetingOutcomeTypes(): array\n {\n return $this->extractMeetingTypeOptions(\n 'https://api.hubapi.com/crm/v3/properties/meeting/hs_meeting_outcome'\n );\n }\n\n public function fetchCallActivityTypes(): array\n {\n return $this->extractMeetingTypeOptions(\n 'https://api.hubapi.com/crm/v3/properties/call/hs_activity_type'\n );\n }\n\n private function extractMeetingTypeOptions(string $endpoint): array\n {\n /** @var Response $response */\n $response = $this->getInstance()\n ->getClient()\n ->request('GET', $endpoint);\n\n /**\n * @var array<array{\n * value: string,\n * label: string,\n * displayOrder: int\n * }> $optionData\n */\n $optionData = $response->toArray()['options'] ?? [];\n\n $options = [];\n foreach ($optionData as $item) {\n $options[] = [\n 'id' => $item['value'],\n 'value' => $item['value'],\n 'label' => $item['label'],\n 'display_order' => $item['displayOrder'],\n ];\n }\n\n return $options;\n }\n\n /**\n * @return array<CrmFieldOption>\n */\n public function fetchDispositionFieldOptions(): array\n {\n $options = [];\n\n $dispositions = $this->fetchCallDispositions();\n\n foreach ($dispositions as $disposition) {\n if ($disposition['deleted'] !== false) {\n continue;\n }\n\n $option['value'] = $disposition['id'];\n $option['id'] = $disposition['id'];\n $option['label'] = $disposition['label'];\n\n $options[] = $option;\n }\n\n return $options;\n }\n\n /**\n * @return array<CrmFieldOption>\n */\n public function fetchOpportunityFieldOptions(Field $field): array\n {\n if ($field->isStageField()) {\n return $this->fetchOpportunityPipelineStages();\n }\n\n if ($field->isPipelineField()) {\n return $this->fetchOpportunityPipelines();\n }\n\n return $this->fetchPropertyOptions('deals', $field->getCrmProviderId());\n }\n\n /**\n * @throws BadRequest\n * @throws HubspotException\n */\n public function makeRequest(string $endpoint, $method = 'GET', $payload = [], ?string $queryString = null)\n {\n $endpoint = self::BASE_URL . $endpoint;\n\n if ($method === 'GET') {\n return $this->getInstance()->getClient()?->request(\n method: $method,\n endpoint: $endpoint,\n query_string: $queryString\n );\n } else {\n return $this->getInstance()->getClient()->request($method, $endpoint, [\n 'json' => ($payload),\n ]);\n }\n }\n\n /**\n * @throws BadRequest\n * @throws HubspotException\n */\n public function createMeeting(array $payload): Response\n {\n $endpoint = '/crm/v3/objects/meetings';\n\n return $this->makeRequest($endpoint, 'POST', $payload);\n }\n\n /**\n * @throws BadRequest\n * @throws HubspotException\n */\n public function updateMeeting(string $meetingId, array $payload): Response\n {\n $endpoint = '/crm/v3/objects/meetings/' . $meetingId;\n\n return $this->makeRequest($endpoint, 'PATCH', $payload);\n }\n\n /**\n * @throws \\Exception\n */\n public function createNote(\n string $body,\n string $ownerId,\n int $timestamp,\n string $objectId,\n NoteObject $noteObject\n ): ?string {\n try {\n $noteInput = new SimplePublicObjectInput([\n 'properties' => [\n 'hs_note_body' => $body,\n 'hubspot_owner_id' => $ownerId,\n 'hs_timestamp' => $timestamp,\n ],\n ]);\n\n // Create note\n $note = $this->getNewInstance()->crm()->objects()->basicApi()->create('note', $noteInput);\n\n $this->getNewInstance()->crm()->objects()->associationsApi()->create(\n 'note',\n $note->getId(),\n $this->getNoteObject($noteObject),\n $objectId,\n $this->getNoteAssociationType($noteObject),\n );\n\n return $note->getId();\n } catch (\\Exception $e) {\n $this->log->error('[Hubspot] Failed to create note', [\n 'objectId' => $objectId,\n 'noteObject' => $noteObject->getObjectType(),\n 'reason' => $e->getMessage(),\n ]);\n\n \\Sentry::captureException($e);\n }\n\n return null;\n }\n\n public function updateEngagement(string $objectId, array $engagement, array $metadata): void\n {\n $this->getInstance()->engagements()->update($objectId, $engagement, $metadata);\n }\n\n public function getEngagementData(string $engagementId): array\n {\n $engagement = $this->getInstance()->engagements()->get($engagementId);\n\n return $engagement->toArray();\n }\n\n public function createEngagement(array $engagement, array $associations, array $metadata): Response\n {\n return $this->getInstance()\n ->engagements()\n ->create($engagement, $associations, $metadata);\n }\n\n public function isUnauthorizedException(\\Exception $e): bool\n {\n // Check for specific HubSpot API exception types first\n if ($e instanceof BadRequest) {\n // BadRequest can contain 401 status codes\n return $e->getCode() === 401;\n }\n\n // Check for HTTP client exceptions with status codes\n if ($e instanceof \\GuzzleHttp\\Exception\\RequestException && $e->hasResponse()) {\n $response = $e->getResponse();\n if ($response !== null) {\n return $response->getStatusCode() === 401;\n }\n }\n\n // Check for Guzzle HTTP exceptions\n if ($e instanceof \\GuzzleHttp\\Exception\\ClientException) {\n return $e->getCode() === 401;\n }\n\n // Fallback to string matching as last resort, but be more specific\n $message = strtolower($e->getMessage());\n\n return str_contains($message, '401 unauthorized') ||\n str_contains($message, 'http 401') ||\n str_contains($message, 'status code 401') ||\n (preg_match('/\\b401\\b/', $message) && str_contains($message, 'unauthorized'));\n }\n\n /**\n * Validates and refreshes the access token if needed before API requests.\n * This ensures long-running processes don't fail due to token expiration.\n *\n * @throws SocialAccountTokenInvalidException\n */\n public function ensureValidToken(): void\n {\n if ($this->oauthAccount === null) {\n return;\n }\n\n $newToken = $this->tokenManager->ensureValidToken($this->oauthAccount);\n if ($newToken !== null) {\n $this->accessToken = $newToken;\n }\n }\n\n public function getConfig()\n {\n return $this->config;\n }\n\n // returns only active (archived=false)\n public function getOwners(): array\n {\n return $this->getNewInstance()->crm()->owners()->getAll();\n }\n\n /**\n * @param bool $archived\n *\n * @return array<Owner>|[]\n */\n public function getOwnersArchived(bool $archived = true): array\n {\n $endpoint = '/crm/v3/owners';\n $queryParams = [\n 'archived' => $archived ? 'true' : 'false',\n ];\n $queryString = http_build_query($queryParams);\n\n $owners = [];\n\n try {\n $response = $this->makeRequest(endpoint: $endpoint, queryString: $queryString);\n $responseData = $response?->toArray();\n\n foreach ($responseData['results'] as $result) {\n try {\n $owners[] = Owner::create($result);\n } catch (Throwable $e) {\n $this->log->error('[HubSpot] Failed to process owner data', [\n 'result' => $result,\n 'error' => $e->getMessage(),\n ]);\n\n continue;\n }\n }\n } catch (Throwable $e) {\n $this->log->error('HubSpot] Failed to fetch owners', [\n 'archived' => $archived,\n 'error' => $e->getMessage(),\n ]);\n\n return [];\n }\n\n return $owners;\n }\n\n public function getMeeting(string $engagementId): ObjectWithAssociations\n {\n return $this->getNewInstance()->crm()->objects()->basicApi()\n ->getById('meeting', $engagementId, null, 'contact,company,deal');\n }\n\n public function deleteEngagement(string $engagementId): void\n {\n $this->getInstance()->engagements()->delete((int) $engagementId);\n }\n\n public function getAssociationsData(array $ids, string $fromObject, string $toObject): array\n {\n $associationData = [];\n $idChunks = array_chunk($ids, self::ASSOCIATIONS_BATCH_SIZE_LIMIT);\n\n foreach ($idChunks as $idChunk) {\n try {\n $batchInput = new \\HubSpot\\Client\\Crm\\Associations\\Model\\BatchInputPublicObjectId();\n $batchInput->setInputs(array_map(function ($id) {\n $publicObjectId = new \\HubSpot\\Client\\Crm\\Associations\\Model\\PublicObjectId();\n $publicObjectId->setId($id);\n\n return $publicObjectId;\n }, $idChunk));\n\n $associatedObjectsData = $this\n ->getNewInstance()\n ->crm()\n ->associations()\n ->batchApi()\n ->read($fromObject, $toObject, $batchInput);\n\n if ($associatedObjectsData instanceof \\HubSpot\\Client\\Crm\\Associations\\Model\\BatchResponsePublicAssociationMulti) {\n foreach ($associatedObjectsData->getResults() as $association) {\n $from = $association->getFrom()->getId();\n $toAssociations = $association->getTo();\n\n if (! empty($toAssociations)) {\n $associationData[$from] = array_map(function ($item) {\n return $item->getId();\n }, $toAssociations);\n }\n }\n }\n// } catch (RateLimitException $e) {\n// throw $e;\n } catch (\\Exception $e) {\n $this->log->error('[Hubspot] Failed to fetch associations', [\n 'from_object' => $fromObject,\n 'to_object' => $toObject,\n 'reason' => $e->getMessage(),\n ]);\n }\n }\n\n return $associationData;\n }\n\n /**\n * @throws \\Exception\n */\n private function getNoteAssociationType(NoteObject $noteObject): string\n {\n return match($noteObject) {\n NoteObject::Opportunity => 'note_to_deal',\n NoteObject::Lead, NoteObject::Contact => 'note_to_contact', // or 'note_to_lead' if your portal supports it\n NoteObject::Account => 'note_to_company',\n NoteObject::Call, NoteObject::Event => throw new \\Exception('Not supported'),\n };\n }\n\n /**\n * @throws \\Exception\n */\n private function getNoteObject(NoteObject $noteObject): string\n {\n return match($noteObject) {\n NoteObject::Opportunity => 'deal',\n NoteObject::Lead, NoteObject::Contact => 'contact',\n NoteObject::Account => 'company',\n NoteObject::Call, NoteObject::Event => throw new \\Exception('Not supported'),\n };\n }\n\n public function addAssociations(string $objectType, string $associationType, array $payload): Response\n {\n $endpoint = \"/crm/v4/associations/$objectType/$associationType/batch/create\";\n\n return $this->makeRequest($endpoint, 'POST', $payload);\n }\n\n public function removeAssociations(string $objectType, string $associationType, array $payload): Response\n {\n $endpoint = \"/crm/v4/associations/$objectType/$associationType/batch/archive\";\n\n return $this->makeRequest($endpoint, 'POST', $payload);\n }\n}","depth":4,"on_screen":true,"value":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Services\\Crm\\Hubspot;\n\nuse HubSpot\\Client\\Crm\\Deals\\ApiException as DealApiException;\nuse HubSpot\\Client\\Crm\\Contacts\\ApiException as ContactApiException;\nuse HubSpot\\Client\\Crm\\Companies\\ApiException as CompanyApiException;\nuse HubSpot\\Client\\Crm\\Contacts\\Model\\SimplePublicObjectWithAssociations as ContactsWithAssociations;\nuse HubSpot\\Client\\Crm\\Companies\\Model\\SimplePublicObjectWithAssociations as CompaniesWithAssociations;\nuse HubSpot\\Client\\Crm\\Deals\\Model\\SimplePublicObjectWithAssociations as DealWithAssociations;\nuse HubSpot\\Client\\Crm\\Objects\\Model\\SimplePublicObjectInput;\nuse HubSpot\\Client\\Crm\\Objects\\Model\\SimplePublicObjectWithAssociations as ObjectWithAssociations;\nuse HubSpot\\Client\\Crm\\Pipelines\\Model\\Error;\nuse HubSpot\\Client\\Crm\\Pipelines\\Model\\PipelineStage;\nuse HubSpot\\Client\\Crm\\Properties\\Model\\Property;\nuse HubSpot\\Discovery\\Discovery;\nuse Jiminny\\Exceptions\\CrmException;\nuse Jiminny\\Exceptions\\RateLimitException;\nuse Jiminny\\Exceptions\\SocialAccountTokenInvalidException;\nuse Jiminny\\Jobs\\Crm\\NoteObject;\nuse Jiminny\\Models\\Crm\\Field;\nuse Jiminny\\Services\\Crm\\BaseClient;\nuse Jiminny\\Services\\Crm\\Hubspot\\DTO\\Response\\Owner;\nuse Jiminny\\Services\\SocialAccountService;\nuse SevenShores\\Hubspot\\Exceptions\\BadRequest;\nuse SevenShores\\Hubspot\\Exceptions\\HubspotException;\nuse SevenShores\\Hubspot\\Factory;\nuse SevenShores\\Hubspot\\Http\\Response;\nuse Jiminny\\Services\\Crm\\Hubspot\\Pagination\\HubspotPaginationService;\nuse Illuminate\\Support\\Facades\\Redis;\nuse Throwable;\n\n/**\n * @phpstan-type CrmFieldOption array{id:string, label:string, value?:string}\n */\nclass Client extends BaseClient implements HubspotClientInterface\n{\n public const string MIN_API_VERSION = '2';\n\n public const string BASE_URL = 'https://api.hubapi.com';\n\n public const int ASSOCIATIONS_BATCH_SIZE_LIMIT = 1000;\n\n private HubspotPaginationService $paginationService;\n private HubspotTokenManager $tokenManager;\n\n public function __construct(\n SocialAccountService $socialAccountService,\n HubspotPaginationService $paginationService,\n HubspotTokenManager $tokenManager\n ) {\n parent::__construct($socialAccountService);\n $this->paginationService = $paginationService;\n $this->tokenManager = $tokenManager;\n\n $this->setBaseUrl(self::BASE_URL);\n $this->setVersion(self::MIN_API_VERSION);\n }\n\n /**\n * Reacts to a rate limits (429) from HubSpot by translating it\n * into a RateLimitException carrying retry_after.\n *\n * Wrap any outbound HubSpot call (SDK or raw HTTP) like:\n *\n * $this->executeRequest(fn () => $this->getNewInstance()->crm()->...);\n *\n * @template T\n * @param callable(): T $apiCall\n * @return T\n *\n * @throws RateLimitException\n */\n private function executeRequest(callable $apiCall)\n {\n $cacheKey = $this->getRateLimitCacheKey();\n\n $cachedRetryAfter = Redis::get($cacheKey);\n if (is_string($cachedRetryAfter) && is_numeric($cachedRetryAfter)) {\n throw new RateLimitException(\n 'Hubspot rate limit (cached circuit-breaker)',\n (int) $cachedRetryAfter,\n );\n }\n\n try {\n return $apiCall();\n } catch (Throwable $e) {\n if ($this->isHubspotRateLimit($e)) {\n $retryAfter = $this->parseRetryAfter($e);\n\n Redis::setex($cacheKey, $retryAfter, (string) $retryAfter);\n\n $this->log->warning('[Hubspot] Received 429 from API', [\n 'team_id' => $this->config->team_id,\n 'config_id' => $this->config->getId(),\n 'retry_after' => $retryAfter,\n 'reason' => $e->getMessage(),\n ]);\n\n throw new RateLimitException('Hubspot returned 429', $retryAfter, $e);\n }\n\n throw $e;\n }\n }\n\n private function getRateLimitCacheKey(): string\n {\n return sprintf('hubspot:ratelimit:portal:%d', $this->config->getId());\n }\n\n public function isHubspotRateLimit(Throwable $e): bool\n {\n if ($e instanceof BadRequest\n || $e instanceof DealApiException\n || $e instanceof ContactApiException\n || $e instanceof CompanyApiException\n || $e instanceof \\GuzzleHttp\\Exception\\RequestException\n ) {\n return (int) $e->getCode() === 429;\n }\n\n return false;\n }\n\n public function parseRetryAfter(Throwable $e): int\n {\n if (method_exists($e, 'getResponseHeaders')) {\n $headers = $e->getResponseHeaders() ?: [];\n $value = $headers['Retry-After'] ?? $headers['retry-after'] ?? null;\n if (is_array($value)) {\n $value = $value[0] ?? null;\n }\n if (is_numeric($value)) {\n return (int) $value;\n }\n }\n\n $message = strtolower($e->getMessage());\n\n if (str_contains($message, 'daily')) {\n return 600;\n }\n if (str_contains($message, 'ten secondly')) {\n return 10;\n }\n if (str_contains($message, 'secondly')) {\n return 1;\n }\n\n $this->log->warning('[Hubspot] No retry-after header or known message, using default', [\n 'exception_class' => get_class($e),\n 'message' => $message,\n ]);\n\n return 10;\n }\n\n public function parseMessage(Throwable $e): string\n {\n if (! method_exists($e, 'getResponseBody')) {\n return '';\n }\n\n $body = $e->getResponseBody();\n if (is_string($body)) {\n $body = json_decode($body, true) ?? [];\n }\n\n if (! is_array($body)) {\n return '';\n }\n\n return (string) ($body['message'] ?? '');\n }\n\n public function getMinimumApiVersion(): string\n {\n return self::MIN_API_VERSION;\n }\n\n public function getInstance(): Factory\n {\n return new Factory([\n 'key' => $this->accessToken,\n 'oauth2' => true,\n 'base_url' => $this->baseUrl,\n ]);\n }\n\n public function getNewInstance(): Discovery\n {\n return \\HubSpot\\Factory::createWithAccessToken($this->accessToken);\n }\n\n /**\n * Secondly and daily limits for Hubspot API\n *\n * Product Tier: Free & Starter | Professional & Enterprise | API add-on (any tier)\n * Burst: 100/10 seconds | 150/10 seconds | 200/10 seconds\n * Daily: 250,000 | 500,000 | 1,000,000\n *\n * Official documentation states: The search endpoints are rate limited to five requests per second.\n * Since with 5 RPS were still hitting secondly rate limits we lowered it to 4\n */\n public function getPaginatedData(array $payload, string $type, int $offset = 0): array\n {\n $total = 0;\n $lastId = null;\n $rows = [];\n foreach ($this->getPaginatedDataGenerator($payload, $type, $offset, $total, $lastId) as $row) {\n $rows[] = $row;\n }\n\n return ['results' => $rows, 'total' => $total, 'last_record' => $lastId];\n }\n\n /**\n * @throws HubspotException\n * @throws SocialAccountTokenInvalidException\n * @throws BadRequest\n */\n public function getPaginatedDataGenerator(\n array $payload,\n string $type,\n int $offset = 0,\n int &$total = 0,\n ?string &$lastRecordId = null\n ): \\Generator {\n return $this->paginationService->getPaginatedDataGenerator(\n $this,\n $payload,\n $type,\n $offset,\n $total,\n $lastRecordId\n );\n }\n\n /**\n * Execute a search request against HubSpot CRM objects with rate limiting.\n *\n * @param string $objectType The object type ('deals', 'companies', 'contacts', 'calls')\n * @param array<string, mixed> $payload The search payload with filters, sorts, properties, etc.\n * @return array The search response with 'results', 'total', 'paging' keys\n * @throws RateLimitException When rate limit is hit\n * @throws HubspotException On API errors\n */\n public function search(string $objectType, array $payload): array\n {\n $endpoint = self::BASE_URL . \"/crm/v3/objects/{$objectType}/search\";\n\n return $this->executeRequest(function () use ($endpoint, $payload) {\n $response = $this->getInstance()->getClient()->request('POST', $endpoint, ['json' => $payload]);\n\n return $response->toArray();\n });\n }\n\n /**\n * @throws DealApiException\n * @throws CrmException\n */\n public function getOpportunityById(string $crmId, array $fields): array\n {\n try {\n $deal = $this->getNewInstance()->crm()->deals()->basicApi()->getById(\n $crmId,\n implode(',', $fields),\n 'companies,contacts'\n );\n } catch (DealApiException $e) {\n $this->log->info('[Hubspot] Failed to fetch opportunity', [\n 'crm_id' => $crmId,\n 'reason' => $e->getMessage(),\n ]);\n\n throw $e;\n }\n\n if (! $deal instanceof DealWithAssociations) {\n throw new CrmException('Deal not found');\n }\n\n return [\n 'id' => $deal->getId(),\n 'properties' => $deal->getProperties(),\n 'associations' => $deal->getAssociations(),\n ];\n }\n\n /**\n * Generic batch read method for HubSpot objects\n *\n * @param string $objectType The object type ('deals', 'companies', 'contacts')\n * @param array<string> $crmIds Array of HubSpot object IDs (max 100)\n * @param array<string> $fields Array of property names to fetch\n *\n * @return array<string, array> Array keyed by CRM ID with object data\n */\n private function batchReadObjects(string $objectType, array $crmIds, array $fields): array\n {\n if (empty($crmIds)) {\n return [];\n }\n\n $this->validateBatchSize($objectType, $crmIds);\n $this->ensureValidToken();\n\n try {\n $batchConfig = $this->createBatchConfiguration($objectType);\n $batchReadRequest = $this->prepareBatchRequest($batchConfig, $crmIds, $fields);\n $response = $batchConfig['api']->read($batchReadRequest);\n\n $this->validateApiResponse($response, $objectType);\n\n $results = $this->processApiResults($response);\n $this->logBatchResults($objectType, $crmIds, $results);\n\n return $results;\n } catch (\\Throwable $e) {\n $this->handleBatchError($e, $objectType, $crmIds);\n }\n }\n\n private function validateBatchSize(string $objectType, array $crmIds): void\n {\n if (count($crmIds) > 100) {\n throw new \\InvalidArgumentException(\"Batch size cannot exceed 100 {$objectType}\");\n }\n }\n\n private function createBatchConfiguration(string $objectType): array\n {\n $configurations = [\n 'deals' => [\n 'batchReadRequest' => new \\HubSpot\\Client\\Crm\\Deals\\Model\\BatchReadInputSimplePublicObjectId(),\n 'inputClass' => \\HubSpot\\Client\\Crm\\Deals\\Model\\SimplePublicObjectId::class,\n 'api' => $this->getNewInstance()->crm()->deals()->batchApi(),\n ],\n 'companies' => [\n 'batchReadRequest' => new \\HubSpot\\Client\\Crm\\Companies\\Model\\BatchReadInputSimplePublicObjectId(),\n 'inputClass' => \\HubSpot\\Client\\Crm\\Companies\\Model\\SimplePublicObjectId::class,\n 'api' => $this->getNewInstance()->crm()->companies()->batchApi(),\n ],\n 'contacts' => [\n 'batchReadRequest' => new \\HubSpot\\Client\\Crm\\Contacts\\Model\\BatchReadInputSimplePublicObjectId(),\n 'inputClass' => \\HubSpot\\Client\\Crm\\Contacts\\Model\\SimplePublicObjectId::class,\n 'api' => $this->getNewInstance()->crm()->contacts()->batchApi(),\n ],\n ];\n\n if (! isset($configurations[$objectType])) {\n throw new \\InvalidArgumentException(\"Unsupported object type: {$objectType}\");\n }\n\n return $configurations[$objectType];\n }\n\n private function prepareBatchRequest(array $batchConfig, array $crmIds, array $fields): object\n {\n $batchReadRequest = $batchConfig['batchReadRequest'];\n $inputClass = $batchConfig['inputClass'];\n\n $inputs = array_map(function ($crmId) use ($inputClass) {\n $input = new $inputClass();\n $input->setId($crmId);\n\n return $input;\n }, $crmIds);\n\n $batchReadRequest->setInputs($inputs);\n $batchReadRequest->setProperties($fields);\n\n return $batchReadRequest;\n }\n\n private function validateApiResponse($response, string $objectType): void\n {\n if (! $response) {\n throw new CrmException(\"HubSpot API returned null response for {$objectType} batch read\");\n }\n }\n\n private function processApiResults($response): array\n {\n $results = [];\n $responseResults = $response->getResults();\n\n if ($responseResults) {\n foreach ($responseResults as $object) {\n if ($object && $object->getId()) {\n $results[$object->getId()] = [\n 'id' => $object->getId(),\n 'properties' => $object->getProperties() ?: [],\n ];\n }\n }\n }\n\n return $results;\n }\n\n private function logBatchResults(string $objectType, array $crmIds, array $results): void\n {\n $this->log->info(\"[HubSpot] Batch fetched {$objectType}\", [\n 'requested_count' => count($crmIds),\n 'returned_count' => count($results),\n 'crm_ids' => $crmIds,\n ]);\n }\n\n private function handleBatchError(\\Throwable $e, string $objectType, array $crmIds): void\n {\n $errorMessage = $e->getMessage() ?: 'Unknown error';\n $errorTrace = $e->getTraceAsString() ?: 'No trace available';\n\n $this->log->error(\"[HubSpot] Failed to batch fetch {$objectType}\", [\n 'crm_ids' => $crmIds,\n 'error' => $errorMessage,\n 'trace' => $errorTrace,\n ]);\n\n throw new CrmException(\"Failed to batch fetch {$objectType}: \" . $errorMessage);\n }\n\n /**\n * Batch read multiple opportunities by their CRM IDs\n *\n * @param array<string> $crmIds Array of HubSpot deal IDs (max 100)\n * @param array<string> $fields Array of property names to fetch\n *\n * @return array<string, array> Array keyed by CRM ID with opportunity data\n */\n public function getOpportunitiesByIds(array $crmIds, array $fields): array\n {\n return $this->batchReadObjects('deals', $crmIds, $fields);\n }\n\n /**\n * Batch read multiple companies by their CRM IDs\n *\n * @param array<string> $crmIds Array of HubSpot company IDs (max 100)\n * @param array<string> $fields Array of property names to fetch\n *\n * @return array<string, array> Array keyed by CRM ID with company data\n */\n public function getCompaniesByIds(array $crmIds, array $fields): array\n {\n return $this->batchReadObjects('companies', $crmIds, $fields);\n }\n\n /**\n * Batch read multiple contacts by their CRM IDs\n *\n * @param array<string> $crmIds Array of HubSpot contact IDs (max 100)\n * @param array<string> $fields Array of property names to fetch\n *\n * @return array<string, array> Array keyed by CRM ID with contact data\n */\n public function getContactsByIds(array $crmIds, array $fields): array\n {\n return $this->batchReadObjects('contacts', $crmIds, $fields);\n }\n\n /**\n * @throws CompanyApiException\n * @throws CrmException\n */\n public function getAccountById(string $crmId, array $fields): array\n {\n try {\n $company = $this->getNewInstance()->crm()->companies()->basicApi()->getById(\n $crmId,\n implode(',', $fields),\n );\n } catch (CompanyApiException $e) {\n $this->log->info('[Hubspot] Failed to fetch account', [\n 'crm_id' => $crmId,\n 'reason' => $e->getMessage(),\n ]);\n\n throw $e;\n }\n\n if (! $company instanceof CompaniesWithAssociations) {\n throw new CrmException('Account not found');\n }\n\n return [\n 'id' => $company->getId(),\n 'properties' => $company->getProperties(),\n ];\n }\n\n /**\n * @throws ContactApiException\n * @throws CrmException\n */\n public function getContactById(string $crmId, array $fields): array\n {\n try {\n $contact = $this->getNewInstance()->crm()->contacts()->basicApi()->getById(\n $crmId,\n implode(',', $fields)\n );\n } catch (ContactApiException $e) {\n $this->log->info('[Hubspot] Failed to fetch contact', [\n 'crm_id' => $crmId,\n 'reason' => $e->getMessage(),\n ]);\n\n throw $e;\n }\n\n if (! $contact instanceof ContactsWithAssociations) {\n throw new CrmException('Contact not found');\n }\n\n return [\n 'id' => $contact->getId(),\n 'properties' => $contact->getProperties(),\n ];\n }\n\n /**\n * This is email search request that Hubspot offers as GET (more generous quota)\n */\n public function getContactByEmail(string $email, array $fields = []): array\n {\n try {\n $contact = $this->getNewInstance()->crm()->contacts()->basicApi()->getById(\n $email,\n implode(',', $fields),\n null,\n false,\n 'email'\n );\n\n return [\n 'id' => $contact->getId(),\n 'properties' => $contact->getProperties(),\n ];\n } catch (ContactApiException $e) {\n $this->log->info('[Hubspot] Failed to fetch contact', [\n 'email' => $email,\n 'reason' => $e->getMessage(),\n ]);\n\n return [];\n }\n }\n\n /**\n * @throws CrmException\n */\n public function fetchProperty(string $objectType, string $propertyId): Property\n {\n $result = $this->getNewInstance()->crm()->properties()->coreApi()->getByName($objectType, $propertyId);\n\n if (! $result instanceof Property) {\n $this->log->error('[Hubspot] Failed to fetch property', [\n 'object_type' => $objectType,\n 'property_id' => $propertyId,\n 'reason' => $result->getMessage(),\n ]);\n\n throw new CrmException('Failed to fetch property');\n }\n\n return $result;\n }\n\n /**\n * @return array<CrmFieldOption>\n */\n public function fetchPropertyOptions(string $objectType, string $propertyId): array\n {\n /** @var array<CrmFieldOption> */\n return $this->fetchProperty($objectType, $propertyId)->getOptions();\n }\n\n /**\n * @return array<array{id:string, label:string, deleted:bool}>\n */\n public function fetchCallDispositions(): array\n {\n /** @var Response $response */\n $response = $this->getInstance()->engagements()->getCallDispositions();\n\n /**\n * @var array<array{\n * id:string,\n * label:string,\n * deleted: bool\n * }>\n */\n return $response->toArray();\n }\n\n /**\n * @return array<CrmFieldOption>\n */\n public function fetchOpportunityPipelineStages(): array\n {\n $stages = [];\n $apiResponse = $this->getNewInstance()->crm()->pipelines()->pipelinesApi()->getAll('deals');\n\n if ($apiResponse instanceof Error) {\n $this->log->error('[Hubspot] Failed to fetch opportunity pipelines', [\n 'reason' => $apiResponse->getMessage(),\n ]);\n\n return [];\n }\n\n foreach ($apiResponse->getResults() as $pipeline) {\n $pipelineStages = array_map(\n static function (PipelineStage $stage) {\n return [\n 'id' => $stage->getId(),\n 'label' => $stage->getLabel(),\n ];\n },\n $pipeline->getStages()\n );\n\n $stages = array_merge($stages, $pipelineStages);\n }\n\n return $stages;\n }\n\n public function fetchOpportunityPipelines(): array\n {\n $pipelines = [];\n\n try {\n $apiResponse = $this->makeRequest('/crm/v3/pipelines/deals');\n } catch (\\Exception $e) {\n $this->log->info('[Hubspot] Failed to fetch opportunity pipelines', [\n 'reason' => $e->getMessage(),\n ]);\n\n return [];\n }\n\n $response = $apiResponse->toArray();\n\n foreach ($response['results'] as $pipeline) {\n $pipelines[] = [\n 'id' => $pipeline['id'],\n 'label' => $pipeline['label'],\n ];\n }\n\n return $pipelines;\n }\n\n /**\n * @return array<CrmFieldOption>\n */\n public function fetchMeetingOutcomeFieldOptions(Field $field): array\n {\n return $field->getCrmProviderId() === 'meetingOutcome'\n ? $this->fetchMeetingOutcomeTypes()\n : $this->fetchCallActivityTypes();\n }\n\n public function fetchMeetingOutcomeTypes(): array\n {\n return $this->extractMeetingTypeOptions(\n 'https://api.hubapi.com/crm/v3/properties/meeting/hs_meeting_outcome'\n );\n }\n\n public function fetchCallActivityTypes(): array\n {\n return $this->extractMeetingTypeOptions(\n 'https://api.hubapi.com/crm/v3/properties/call/hs_activity_type'\n );\n }\n\n private function extractMeetingTypeOptions(string $endpoint): array\n {\n /** @var Response $response */\n $response = $this->getInstance()\n ->getClient()\n ->request('GET', $endpoint);\n\n /**\n * @var array<array{\n * value: string,\n * label: string,\n * displayOrder: int\n * }> $optionData\n */\n $optionData = $response->toArray()['options'] ?? [];\n\n $options = [];\n foreach ($optionData as $item) {\n $options[] = [\n 'id' => $item['value'],\n 'value' => $item['value'],\n 'label' => $item['label'],\n 'display_order' => $item['displayOrder'],\n ];\n }\n\n return $options;\n }\n\n /**\n * @return array<CrmFieldOption>\n */\n public function fetchDispositionFieldOptions(): array\n {\n $options = [];\n\n $dispositions = $this->fetchCallDispositions();\n\n foreach ($dispositions as $disposition) {\n if ($disposition['deleted'] !== false) {\n continue;\n }\n\n $option['value'] = $disposition['id'];\n $option['id'] = $disposition['id'];\n $option['label'] = $disposition['label'];\n\n $options[] = $option;\n }\n\n return $options;\n }\n\n /**\n * @return array<CrmFieldOption>\n */\n public function fetchOpportunityFieldOptions(Field $field): array\n {\n if ($field->isStageField()) {\n return $this->fetchOpportunityPipelineStages();\n }\n\n if ($field->isPipelineField()) {\n return $this->fetchOpportunityPipelines();\n }\n\n return $this->fetchPropertyOptions('deals', $field->getCrmProviderId());\n }\n\n /**\n * @throws BadRequest\n * @throws HubspotException\n */\n public function makeRequest(string $endpoint, $method = 'GET', $payload = [], ?string $queryString = null)\n {\n $endpoint = self::BASE_URL . $endpoint;\n\n if ($method === 'GET') {\n return $this->getInstance()->getClient()?->request(\n method: $method,\n endpoint: $endpoint,\n query_string: $queryString\n );\n } else {\n return $this->getInstance()->getClient()->request($method, $endpoint, [\n 'json' => ($payload),\n ]);\n }\n }\n\n /**\n * @throws BadRequest\n * @throws HubspotException\n */\n public function createMeeting(array $payload): Response\n {\n $endpoint = '/crm/v3/objects/meetings';\n\n return $this->makeRequest($endpoint, 'POST', $payload);\n }\n\n /**\n * @throws BadRequest\n * @throws HubspotException\n */\n public function updateMeeting(string $meetingId, array $payload): Response\n {\n $endpoint = '/crm/v3/objects/meetings/' . $meetingId;\n\n return $this->makeRequest($endpoint, 'PATCH', $payload);\n }\n\n /**\n * @throws \\Exception\n */\n public function createNote(\n string $body,\n string $ownerId,\n int $timestamp,\n string $objectId,\n NoteObject $noteObject\n ): ?string {\n try {\n $noteInput = new SimplePublicObjectInput([\n 'properties' => [\n 'hs_note_body' => $body,\n 'hubspot_owner_id' => $ownerId,\n 'hs_timestamp' => $timestamp,\n ],\n ]);\n\n // Create note\n $note = $this->getNewInstance()->crm()->objects()->basicApi()->create('note', $noteInput);\n\n $this->getNewInstance()->crm()->objects()->associationsApi()->create(\n 'note',\n $note->getId(),\n $this->getNoteObject($noteObject),\n $objectId,\n $this->getNoteAssociationType($noteObject),\n );\n\n return $note->getId();\n } catch (\\Exception $e) {\n $this->log->error('[Hubspot] Failed to create note', [\n 'objectId' => $objectId,\n 'noteObject' => $noteObject->getObjectType(),\n 'reason' => $e->getMessage(),\n ]);\n\n \\Sentry::captureException($e);\n }\n\n return null;\n }\n\n public function updateEngagement(string $objectId, array $engagement, array $metadata): void\n {\n $this->getInstance()->engagements()->update($objectId, $engagement, $metadata);\n }\n\n public function getEngagementData(string $engagementId): array\n {\n $engagement = $this->getInstance()->engagements()->get($engagementId);\n\n return $engagement->toArray();\n }\n\n public function createEngagement(array $engagement, array $associations, array $metadata): Response\n {\n return $this->getInstance()\n ->engagements()\n ->create($engagement, $associations, $metadata);\n }\n\n public function isUnauthorizedException(\\Exception $e): bool\n {\n // Check for specific HubSpot API exception types first\n if ($e instanceof BadRequest) {\n // BadRequest can contain 401 status codes\n return $e->getCode() === 401;\n }\n\n // Check for HTTP client exceptions with status codes\n if ($e instanceof \\GuzzleHttp\\Exception\\RequestException && $e->hasResponse()) {\n $response = $e->getResponse();\n if ($response !== null) {\n return $response->getStatusCode() === 401;\n }\n }\n\n // Check for Guzzle HTTP exceptions\n if ($e instanceof \\GuzzleHttp\\Exception\\ClientException) {\n return $e->getCode() === 401;\n }\n\n // Fallback to string matching as last resort, but be more specific\n $message = strtolower($e->getMessage());\n\n return str_contains($message, '401 unauthorized') ||\n str_contains($message, 'http 401') ||\n str_contains($message, 'status code 401') ||\n (preg_match('/\\b401\\b/', $message) && str_contains($message, 'unauthorized'));\n }\n\n /**\n * Validates and refreshes the access token if needed before API requests.\n * This ensures long-running processes don't fail due to token expiration.\n *\n * @throws SocialAccountTokenInvalidException\n */\n public function ensureValidToken(): void\n {\n if ($this->oauthAccount === null) {\n return;\n }\n\n $newToken = $this->tokenManager->ensureValidToken($this->oauthAccount);\n if ($newToken !== null) {\n $this->accessToken = $newToken;\n }\n }\n\n public function getConfig()\n {\n return $this->config;\n }\n\n // returns only active (archived=false)\n public function getOwners(): array\n {\n return $this->getNewInstance()->crm()->owners()->getAll();\n }\n\n /**\n * @param bool $archived\n *\n * @return array<Owner>|[]\n */\n public function getOwnersArchived(bool $archived = true): array\n {\n $endpoint = '/crm/v3/owners';\n $queryParams = [\n 'archived' => $archived ? 'true' : 'false',\n ];\n $queryString = http_build_query($queryParams);\n\n $owners = [];\n\n try {\n $response = $this->makeRequest(endpoint: $endpoint, queryString: $queryString);\n $responseData = $response?->toArray();\n\n foreach ($responseData['results'] as $result) {\n try {\n $owners[] = Owner::create($result);\n } catch (Throwable $e) {\n $this->log->error('[HubSpot] Failed to process owner data', [\n 'result' => $result,\n 'error' => $e->getMessage(),\n ]);\n\n continue;\n }\n }\n } catch (Throwable $e) {\n $this->log->error('HubSpot] Failed to fetch owners', [\n 'archived' => $archived,\n 'error' => $e->getMessage(),\n ]);\n\n return [];\n }\n\n return $owners;\n }\n\n public function getMeeting(string $engagementId): ObjectWithAssociations\n {\n return $this->getNewInstance()->crm()->objects()->basicApi()\n ->getById('meeting', $engagementId, null, 'contact,company,deal');\n }\n\n public function deleteEngagement(string $engagementId): void\n {\n $this->getInstance()->engagements()->delete((int) $engagementId);\n }\n\n public function getAssociationsData(array $ids, string $fromObject, string $toObject): array\n {\n $associationData = [];\n $idChunks = array_chunk($ids, self::ASSOCIATIONS_BATCH_SIZE_LIMIT);\n\n foreach ($idChunks as $idChunk) {\n try {\n $batchInput = new \\HubSpot\\Client\\Crm\\Associations\\Model\\BatchInputPublicObjectId();\n $batchInput->setInputs(array_map(function ($id) {\n $publicObjectId = new \\HubSpot\\Client\\Crm\\Associations\\Model\\PublicObjectId();\n $publicObjectId->setId($id);\n\n return $publicObjectId;\n }, $idChunk));\n\n $associatedObjectsData = $this\n ->getNewInstance()\n ->crm()\n ->associations()\n ->batchApi()\n ->read($fromObject, $toObject, $batchInput);\n\n if ($associatedObjectsData instanceof \\HubSpot\\Client\\Crm\\Associations\\Model\\BatchResponsePublicAssociationMulti) {\n foreach ($associatedObjectsData->getResults() as $association) {\n $from = $association->getFrom()->getId();\n $toAssociations = $association->getTo();\n\n if (! empty($toAssociations)) {\n $associationData[$from] = array_map(function ($item) {\n return $item->getId();\n }, $toAssociations);\n }\n }\n }\n// } catch (RateLimitException $e) {\n// throw $e;\n } catch (\\Exception $e) {\n $this->log->error('[Hubspot] Failed to fetch associations', [\n 'from_object' => $fromObject,\n 'to_object' => $toObject,\n 'reason' => $e->getMessage(),\n ]);\n }\n }\n\n return $associationData;\n }\n\n /**\n * @throws \\Exception\n */\n private function getNoteAssociationType(NoteObject $noteObject): string\n {\n return match($noteObject) {\n NoteObject::Opportunity => 'note_to_deal',\n NoteObject::Lead, NoteObject::Contact => 'note_to_contact', // or 'note_to_lead' if your portal supports it\n NoteObject::Account => 'note_to_company',\n NoteObject::Call, NoteObject::Event => throw new \\Exception('Not supported'),\n };\n }\n\n /**\n * @throws \\Exception\n */\n private function getNoteObject(NoteObject $noteObject): string\n {\n return match($noteObject) {\n NoteObject::Opportunity => 'deal',\n NoteObject::Lead, NoteObject::Contact => 'contact',\n NoteObject::Account => 'company',\n NoteObject::Call, NoteObject::Event => throw new \\Exception('Not supported'),\n };\n }\n\n public function addAssociations(string $objectType, string $associationType, array $payload): Response\n {\n $endpoint = \"/crm/v4/associations/$objectType/$associationType/batch/create\";\n\n return $this->makeRequest($endpoint, 'POST', $payload);\n }\n\n public function removeAssociations(string $objectType, string $associationType, array $payload): Response\n {\n $endpoint = \"/crm/v4/associations/$objectType/$associationType/batch/archive\";\n\n return $this->makeRequest($endpoint, 'POST', $payload);\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
8195229470273895653
|
6378757149903685732
|
visual_change
|
accessibility
|
NULL
|
Project: faVsco.js, menu
JY-20725-handle-HS-search Project: faVsco.js, menu
JY-20725-handle-HS-search-rate-limit, menu
Start Listening for PHP Debug Connections
HandleHubspotRateLimitTest
Run 'HandleHubspotRateLimitTest'
Debug 'HandleHubspotRateLimitTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
2
67
3
Previous Highlighted Error
Next Highlighted Error
<?php
declare(strict_types=1);
namespace Jiminny\Services\Crm\Hubspot;
use HubSpot\Client\Crm\Deals\ApiException as DealApiException;
use HubSpot\Client\Crm\Contacts\ApiException as ContactApiException;
use HubSpot\Client\Crm\Companies\ApiException as CompanyApiException;
use HubSpot\Client\Crm\Contacts\Model\SimplePublicObjectWithAssociations as ContactsWithAssociations;
use HubSpot\Client\Crm\Companies\Model\SimplePublicObjectWithAssociations as CompaniesWithAssociations;
use HubSpot\Client\Crm\Deals\Model\SimplePublicObjectWithAssociations as DealWithAssociations;
use HubSpot\Client\Crm\Objects\Model\SimplePublicObjectInput;
use HubSpot\Client\Crm\Objects\Model\SimplePublicObjectWithAssociations as ObjectWithAssociations;
use HubSpot\Client\Crm\Pipelines\Model\Error;
use HubSpot\Client\Crm\Pipelines\Model\PipelineStage;
use HubSpot\Client\Crm\Properties\Model\Property;
use HubSpot\Discovery\Discovery;
use Jiminny\Exceptions\CrmException;
use Jiminny\Exceptions\RateLimitException;
use Jiminny\Exceptions\SocialAccountTokenInvalidException;
use Jiminny\Jobs\Crm\NoteObject;
use Jiminny\Models\Crm\Field;
use Jiminny\Services\Crm\BaseClient;
use Jiminny\Services\Crm\Hubspot\DTO\Response\Owner;
use Jiminny\Services\SocialAccountService;
use SevenShores\Hubspot\Exceptions\BadRequest;
use SevenShores\Hubspot\Exceptions\HubspotException;
use SevenShores\Hubspot\Factory;
use SevenShores\Hubspot\Http\Response;
use Jiminny\Services\Crm\Hubspot\Pagination\HubspotPaginationService;
use Illuminate\Support\Facades\Redis;
use Throwable;
/**
* @phpstan-type CrmFieldOption array{id:string, label:string, value?:string}
*/
class Client extends BaseClient implements HubspotClientInterface
{
public const string MIN_API_VERSION = '2';
public const string BASE_URL = '[URL_WITH_CREDENTIALS] T
* @param callable(): T $apiCall
* @return T
*
* @throws RateLimitException
*/
private function executeRequest(callable $apiCall)
{
$cacheKey = $this->getRateLimitCacheKey();
$cachedRetryAfter = Redis::get($cacheKey);
if (is_string($cachedRetryAfter) && is_numeric($cachedRetryAfter)) {
throw new RateLimitException(
'Hubspot rate limit (cached circuit-breaker)',
(int) $cachedRetryAfter,
);
}
try {
return $apiCall();
} catch (Throwable $e) {
if ($this->isHubspotRateLimit($e)) {
$retryAfter = $this->parseRetryAfter($e);
Redis::setex($cacheKey, $retryAfter, (string) $retryAfter);
$this->log->warning('[Hubspot] Received 429 from API', [
'team_id' => $this->config->team_id,
'config_id' => $this->config->getId(),
'retry_after' => $retryAfter,
'reason' => $e->getMessage(),
]);
throw new RateLimitException('Hubspot returned 429', $retryAfter, $e);
}
throw $e;
}
}
private function getRateLimitCacheKey(): string
{
return sprintf('hubspot:ratelimit:portal:%d', $this->config->getId());
}
public function isHubspotRateLimit(Throwable $e): bool
{
if ($e instanceof BadRequest
|| $e instanceof DealApiException
|| $e instanceof ContactApiException
|| $e instanceof CompanyApiException
|| $e instanceof \GuzzleHttp\Exception\RequestException
) {
return (int) $e->getCode() === 429;
}
return false;
}
public function parseRetryAfter(Throwable $e): int
{
if (method_exists($e, 'getResponseHeaders')) {
$headers = $e->getResponseHeaders() ?: [];
$value = $headers['Retry-After'] ?? $headers['retry-after'] ?? null;
if (is_array($value)) {
$value = $value[0] ?? null;
}
if (is_numeric($value)) {
return (int) $value;
}
}
$message = strtolower($e->getMessage());
if (str_contains($message, 'daily')) {
return 600;
}
if (str_contains($message, 'ten secondly')) {
return 10;
}
if (str_contains($message, 'secondly')) {
return 1;
}
$this->log->warning('[Hubspot] No retry-after header or known message, using default', [
'exception_class' => get_class($e),
'message' => $message,
]);
return 10;
}
public function parseMessage(Throwable $e): string
{
if (! method_exists($e, 'getResponseBody')) {
return '';
}
$body = $e->getResponseBody();
if (is_string($body)) {
$body = json_decode($body, true) ?? [];
}
if (! is_array($body)) {
return '';
}
return (string) ($body['message'] ?? '');
}
public function getMinimumApiVersion(): string
{
return self::MIN_API_VERSION;
}
public function getInstance(): Factory
{
return new Factory([
'key' => $this->accessToken,
'oauth2' => true,
'base_url' => $this->baseUrl,
]);
}
public function getNewInstance(): Discovery
{
return \HubSpot\Factory::createWithAccessToken($this->accessToken);
}
/**
* Secondly and daily limits for Hubspot API
*
* Product Tier: Free & Starter | Professional & Enterprise | API add-on (any tier)
* Burst: 100/10 seconds | 150/10 seconds | 200/10 seconds
* Daily: 250,000 | 500,000 | 1,000,000
*
* Official documentation states: The search endpoints are rate limited to five requests per second.
* Since with 5 RPS were still hitting secondly rate limits we lowered it to 4
*/
public function getPaginatedData(array $payload, string $type, int $offset = 0): array
{
$total = 0;
$lastId = null;
$rows = [];
foreach ($this->getPaginatedDataGenerator($payload, $type, $offset, $total, $lastId) as $row) {
$rows[] = $row;
}
return ['results' => $rows, 'total' => $total, 'last_record' => $lastId];
}
/**
* @throws HubspotException
* @throws SocialAccountTokenInvalidException
* @throws BadRequest
*/
public function getPaginatedDataGenerator(
array $payload,
string $type,
int $offset = 0,
int &$total = 0,
?string &$lastRecordId = null
): \Generator {
return $this->paginationService->getPaginatedDataGenerator(
$this,
$payload,
$type,
$offset,
$total,
$lastRecordId
);
}
/**
* Execute a search request against HubSpot CRM objects with rate limiting.
*
* @param string $objectType The object type ('deals', 'companies', 'contacts', 'calls')
* @param array<string, mixed> $payload The search payload with filters, sorts, properties, etc.
* @return array The search response with 'results', 'total', 'paging' keys
* @throws RateLimitException When rate limit is hit
* @throws HubspotException On API errors
*/
public function search(string $objectType, array $payload): array
{
$endpoint = self::BASE_URL . "/crm/v3/objects/{$objectType}/search";
return $this->executeRequest(function () use ($endpoint, $payload) {
$response = $this->getInstance()->getClient()->request('POST', $endpoint, ['json' => $payload]);
return $response->toArray();
});
}
/**
* @throws DealApiException
* @throws CrmException
*/
public function getOpportunityById(string $crmId, array $fields): array
{
try {
$deal = $this->getNewInstance()->crm()->deals()->basicApi()->getById(
$crmId,
implode(',', $fields),
'companies,contacts'
);
} catch (DealApiException $e) {
$this->log->info('[Hubspot] Failed to fetch opportunity', [
'crm_id' => $crmId,
'reason' => $e->getMessage(),
]);
throw $e;
}
if (! $deal instanceof DealWithAssociations) {
throw new CrmException('Deal not found');
}
return [
'id' => $deal->getId(),
'properties' => $deal->getProperties(),
'associations' => $deal->getAssociations(),
];
}
/**
* Generic batch read method for HubSpot objects
*
* @param string $objectType The object type ('deals', 'companies', 'contacts')
* @param array<string> $crmIds Array of HubSpot object IDs (max 100)
* @param array<string> $fields Array of property names to fetch
*
* @return array<string, array> Array keyed by CRM ID with object data
*/
private function batchReadObjects(string $objectType, array $crmIds, array $fields): array
{
if (empty($crmIds)) {
return [];
}
$this->validateBatchSize($objectType, $crmIds);
$this->ensureValidToken();
try {
$batchConfig = $this->createBatchConfiguration($objectType);
$batchReadRequest = $this->prepareBatchRequest($batchConfig, $crmIds, $fields);
$response = $batchConfig['api']->read($batchReadRequest);
$this->validateApiResponse($response, $objectType);
$results = $this->processApiResults($response);
$this->logBatchResults($objectType, $crmIds, $results);
return $results;
} catch (\Throwable $e) {
$this->handleBatchError($e, $objectType, $crmIds);
}
}
private function validateBatchSize(string $objectType, array $crmIds): void
{
if (count($crmIds) > 100) {
throw new \InvalidArgumentException("Batch size cannot exceed 100 {$objectType}");
}
}
private function createBatchConfiguration(string $objectType): array
{
$configurations = [
'deals' => [
'batchReadRequest' => new \HubSpot\Client\Crm\Deals\Model\BatchReadInputSimplePublicObjectId(),
'inputClass' => \HubSpot\Client\Crm\Deals\Model\SimplePublicObjectId::class,
'api' => $this->getNewInstance()->crm()->deals()->batchApi(),
],
'companies' => [
'batchReadRequest' => new \HubSpot\Client\Crm\Companies\Model\BatchReadInputSimplePublicObjectId(),
'inputClass' => \HubSpot\Client\Crm\Companies\Model\SimplePublicObjectId::class,
'api' => $this->getNewInstance()->crm()->companies()->batchApi(),
],
'contacts' => [
'batchReadRequest' => new \HubSpot\Client\Crm\Contacts\Model\BatchReadInputSimplePublicObjectId(),
'inputClass' => \HubSpot\Client\Crm\Contacts\Model\SimplePublicObjectId::class,
'api' => $this->getNewInstance()->crm()->contacts()->batchApi(),
],
];
if (! isset($configurations[$objectType])) {
throw new \InvalidArgumentException("Unsupported object type: {$objectType}");
}
return $configurations[$objectType];
}
private function prepareBatchRequest(array $batchConfig, array $crmIds, array $fields): object
{
$batchReadRequest = $batchConfig['batchReadRequest'];
$inputClass = $batchConfig['inputClass'];
$inputs = array_map(function ($crmId) use ($inputClass) {
$input = new $inputClass();
$input->setId($crmId);
return $input;
}, $crmIds);
$batchReadRequest->setInputs($inputs);
$batchReadRequest->setProperties($fields);
return $batchReadRequest;
}
private function validateApiResponse($response, string $objectType): void
{
if (! $response) {
throw new CrmException("HubSpot API returned null response for {$objectType} batch read");
}
}
private function processApiResults($response): array
{
$results = [];
$responseResults = $response->getResults();
if ($responseResults) {
foreach ($responseResults as $object) {
if ($object && $object->getId()) {
$results[$object->getId()] = [
'id' => $object->getId(),
'properties' => $object->getProperties() ?: [],
];
}
}
}
return $results;
}
private function logBatchResults(string $objectType, array $crmIds, array $results): void
{
$this->log->info("[HubSpot] Batch fetched {$objectType}", [
'requested_count' => count($crmIds),
'returned_count' => count($results),
'crm_ids' => $crmIds,
]);
}
private function handleBatchError(\Throwable $e, string $objectType, array $crmIds): void
{
$errorMessage = $e->getMessage() ?: 'Unknown error';
$errorTrace = $e->getTraceAsString() ?: 'No trace available';
$this->log->error("[HubSpot] Failed to batch fetch {$objectType}", [
'crm_ids' => $crmIds,
'error' => $errorMessage,
'trace' => $errorTrace,
]);
throw new CrmException("Failed to batch fetch {$objectType}: " . $errorMessage);
}
/**
* Batch read multiple opportunities by their CRM IDs
*
* @param array<string> $crmIds Array of HubSpot deal IDs (max 100)
* @param array<string> $fields Array of property names to fetch
*
* @return array<string, array> Array keyed by CRM ID with opportunity data
*/
public function getOpportunitiesByIds(array $crmIds, array $fields): array
{
return $this->batchReadObjects('deals', $crmIds, $fields);
}
/**
* Batch read multiple companies by their CRM IDs
*
* @param array<string> $crmIds Array of HubSpot company IDs (max 100)
* @param array<string> $fields Array of property names to fetch
*
* @return array<string, array> Array keyed by CRM ID with company data
*/
public function getCompaniesByIds(array $crmIds, array $fields): array
{
return $this->batchReadObjects('companies', $crmIds, $fields);
}
/**
* Batch read multiple contacts by their CRM IDs
*
* @param array<string> $crmIds Array of HubSpot contact IDs (max 100)
* @param array<string> $fields Array of property names to fetch
*
* @return array<string, array> Array keyed by CRM ID with contact data
*/
public function getContactsByIds(array $crmIds, array $fields): array
{
return $this->batchReadObjects('contacts', $crmIds, $fields);
}
/**
* @throws CompanyApiException
* @throws CrmException
*/
public function getAccountById(string $crmId, array $fields): array
{
try {
$company = $this->getNewInstance()->crm()->companies()->basicApi()->getById(
$crmId,
implode(',', $fields),
);
} catch (CompanyApiException $e) {
$this->log->info('[Hubspot] Failed to fetch account', [
'crm_id' => $crmId,
'reason' => $e->getMessage(),
]);
throw $e;
}
if (! $company instanceof CompaniesWithAssociations) {
throw new CrmException('Account not found');
}
return [
'id' => $company->getId(),
'properties' => $company->getProperties(),
];
}
/**
* @throws ContactApiException
* @throws CrmException
*/
public function getContactById(string $crmId, array $fields): array
{
try {
$contact = $this->getNewInstance()->crm()->contacts()->basicApi()->getById(
$crmId,
implode(',', $fields)
);
} catch (ContactApiException $e) {
$this->log->info('[Hubspot] Failed to fetch contact', [
'crm_id' => $crmId,
'reason' => $e->getMessage(),
]);
throw $e;
}
if (! $contact instanceof ContactsWithAssociations) {
throw new CrmException('Contact not found');
}
return [
'id' => $contact->getId(),
'properties' => $contact->getProperties(),
];
}
/**
* This is email search request that Hubspot offers as GET (more generous quota)
*/
public function getContactByEmail(string $email, array $fields = []): array
{
try {
$contact = $this->getNewInstance()->crm()->contacts()->basicApi()->getById(
$email,
implode(',', $fields),
null,
false,
'email'
);
return [
'id' => $contact->getId(),
'properties' => $contact->getProperties(),
];
} catch (ContactApiException $e) {
$this->log->info('[Hubspot] Failed to fetch contact', [
'email' => $email,
'reason' => $e->getMessage(),
]);
return [];
}
}
/**
* @throws CrmException
*/
public function fetchProperty(string $objectType, string $propertyId): Property
{
$result = $this->getNewInstance()->crm()->properties()->coreApi()->getByName($objectType, $propertyId);
if (! $result instanceof Property) {
$this->log->error('[Hubspot] Failed to fetch property', [
'object_type' => $objectType,
'property_id' => $propertyId,
'reason' => $result->getMessage(),
]);
throw new CrmException('Failed to fetch property');
}
return $result;
}
/**
* @return array<CrmFieldOption>
*/
public function fetchPropertyOptions(string $objectType, string $propertyId): array
{
/** @var array<CrmFieldOption> */
return $this->fetchProperty($objectType, $propertyId)->getOptions();
}
/**
* @return array<array{id:string, label:string, deleted:bool}>
*/
public function fetchCallDispositions(): array
{
/** @var Response $response */
$response = $this->getInstance()->engagements()->getCallDispositions();
/**
* @var array<array{
* id:string,
* label:string,
* deleted: bool
* }>
*/
return $response->toArray();
}
/**
* @return array<CrmFieldOption>
*/
public function fetchOpportunityPipelineStages(): array
{
$stages = [];
$apiResponse = $this->getNewInstance()->crm()->pipelines()->pipelinesApi()->getAll('deals');
if ($apiResponse instanceof Error) {
$this->log->error('[Hubspot] Failed to fetch opportunity pipelines', [
'reason' => $apiResponse->getMessage(),
]);
return [];
}
foreach ($apiResponse->getResults() as $pipeline) {
$pipelineStages = array_map(
static function (PipelineStage $stage) {
return [
'id' => $stage->getId(),
'label' => $stage->getLabel(),
];
},
$pipeline->getStages()
);
$stages = array_merge($stages, $pipelineStages);
}
return $stages;
}
public function fetchOpportunityPipelines(): array
{
$pipelines = [];
try {
$apiResponse = $this->makeRequest('/crm/v3/pipelines/deals');
} catch (\Exception $e) {
$this->log->info('[Hubspot] Failed to fetch opportunity pipelines', [
'reason' => $e->getMessage(),
]);
return [];
}
$response = $apiResponse->toArray();
foreach ($response['results'] as $pipeline) {
$pipelines[] = [
'id' => $pipeline['id'],
'label' => $pipeline['label'],
];
}
return $pipelines;
}
/**
* @return array<CrmFieldOption>
*/
public function fetchMeetingOutcomeFieldOptions(Field $field): array
{
return $field->getCrmProviderId() === 'meetingOutcome'
? $this->fetchMeetingOutcomeTypes()
: $this->fetchCallActivityTypes();
}
public function fetchMeetingOutcomeTypes(): array
{
return $this->extractMeetingTypeOptions(
'[URL_WITH_CREDENTIALS] Response $response */
$response = $this->getInstance()
->getClient()
->request('GET', $endpoint);
/**
* @var array<array{
* value: string,
* label: string,
* displayOrder: int
* }> $optionData
*/
$optionData = $response->toArray()['options'] ?? [];
$options = [];
foreach ($optionData as $item) {
$options[] = [
'id' => $item['value'],
'value' => $item['value'],
'label' => $item['label'],
'display_order' => $item['displayOrder'],
];
}
return $options;
}
/**
* @return array<CrmFieldOption>
*/
public function fetchDispositionFieldOptions(): array
{
$options = [];
$dispositions = $this->fetchCallDispositions();
foreach ($dispositions as $disposition) {
if ($disposition['deleted'] !== false) {
continue;
}
$option['value'] = $disposition['id'];
$option['id'] = $disposition['id'];
$option['label'] = $disposition['label'];
$options[] = $option;
}
return $options;
}
/**
* @return array<CrmFieldOption>
*/
public function fetchOpportunityFieldOptions(Field $field): array
{
if ($field->isStageField()) {
return $this->fetchOpportunityPipelineStages();
}
if ($field->isPipelineField()) {
return $this->fetchOpportunityPipelines();
}
return $this->fetchPropertyOptions('deals', $field->getCrmProviderId());
}
/**
* @throws BadRequest
* @throws HubspotException
*/
public function makeRequest(string $endpoint, $method = 'GET', $payload = [], ?string $queryString = null)
{
$endpoint = self::BASE_URL . $endpoint;
if ($method === 'GET') {
return $this->getInstance()->getClient()?->request(
method: $method,
endpoint: $endpoint,
query_string: $queryString
);
} else {
return $this->getInstance()->getClient()->request($method, $endpoint, [
'json' => ($payload),
]);
}
}
/**
* @throws BadRequest
* @throws HubspotException
*/
public function createMeeting(array $payload): Response
{
$endpoint = '/crm/v3/objects/meetings';
return $this->makeRequest($endpoint, 'POST', $payload);
}
/**
* @throws BadRequest
* @throws HubspotException
*/
public function updateMeeting(string $meetingId, array $payload): Response
{
$endpoint = '/crm/v3/objects/meetings/' . $meetingId;
return $this->makeRequest($endpoint, 'PATCH', $payload);
}
/**
* @throws \Exception
*/
public function createNote(
string $body,
string $ownerId,
int $timestamp,
string $objectId,
NoteObject $noteObject
): ?string {
try {
$noteInput = new SimplePublicObjectInput([
'properties' => [
'hs_note_body' => $body,
'hubspot_owner_id' => $ownerId,
'hs_timestamp' => $timestamp,
],
]);
// Create note
$note = $this->getNewInstance()->crm()->objects()->basicApi()->create('note', $noteInput);
$this->getNewInstance()->crm()->objects()->associationsApi()->create(
'note',
$note->getId(),
$this->getNoteObject($noteObject),
$objectId,
$this->getNoteAssociationType($noteObject),
);
return $note->getId();
} catch (\Exception $e) {
$this->log->error('[Hubspot] Failed to create note', [
'objectId' => $objectId,
'noteObject' => $noteObject->getObjectType(),
'reason' => $e->getMessage(),
]);
\Sentry::captureException($e);
}
return null;
}
public function updateEngagement(string $objectId, array $engagement, array $metadata): void
{
$this->getInstance()->engagements()->update($objectId, $engagement, $metadata);
}
public function getEngagementData(string $engagementId): array
{
$engagement = $this->getInstance()->engagements()->get($engagementId);
return $engagement->toArray();
}
public function createEngagement(array $engagement, array $associations, array $metadata): Response
{
return $this->getInstance()
->engagements()
->create($engagement, $associations, $metadata);
}
public function isUnauthorizedException(\Exception $e): bool
{
// Check for specific HubSpot API exception types first
if ($e instanceof BadRequest) {
// BadRequest can contain 401 status codes
return $e->getCode() === 401;
}
// Check for HTTP client exceptions with status codes
if ($e instanceof \GuzzleHttp\Exception\RequestException && $e->hasResponse()) {
$response = $e->getResponse();
if ($response !== null) {
return $response->getStatusCode() === 401;
}
}
// Check for Guzzle HTTP exceptions
if ($e instanceof \GuzzleHttp\Exception\ClientException) {
return $e->getCode() === 401;
}
// Fallback to string matching as last resort, but be more specific
$message = strtolower($e->getMessage());
return str_contains($message, '401 unauthorized') ||
str_contains($message, 'http 401') ||
str_contains($message, 'status code 401') ||
(preg_match('/\b401\b/', $message) && str_contains($message, 'unauthorized'));
}
/**
* Validates and refreshes the access token if needed before API requests.
* This ensures long-running processes don't fail due to token expiration.
*
* @throws SocialAccountTokenInvalidException
*/
public function ensureValidToken(): void
{
if ($this->oauthAccount === null) {
return;
}
$newToken = $this->tokenManager->ensureValidToken($this->oauthAccount);
if ($newToken !== null) {
$this->accessToken = $newToken;
}
}
public function getConfig()
{
return $this->config;
}
// returns only active (archived=false)
public function getOwners(): array
{
return $this->getNewInstance()->crm()->owners()->getAll();
}
/**
* @param bool $archived
*
* @return array<Owner>|[]
*/
public function getOwnersArchived(bool $archived = true): array
{
$endpoint = '/crm/v3/owners';
$queryParams = [
'archived' => $archived ? 'true' : 'false',
];
$queryString = http_build_query($queryParams);
$owners = [];
try {
$response = $this->makeRequest(endpoint: $endpoint, queryString: $queryString);
$responseData = $response?->toArray();
foreach ($responseData['results'] as $result) {
try {
$owners[] = Owner::create($result);
} catch (Throwable $e) {
$this->log->error('[HubSpot] Failed to process owner data', [
'result' => $result,
'error' => $e->getMessage(),
]);
continue;
}
}
} catch (Throwable $e) {
$this->log->error('HubSpot] Failed to fetch owners', [
'archived' => $archived,
'error' => $e->getMessage(),
]);
return [];
}
return $owners;
}
public function getMeeting(string $engagementId): ObjectWithAssociations
{
return $this->getNewInstance()->crm()->objects()->basicApi()
->getById('meeting', $engagementId, null, 'contact,company,deal');
}
public function deleteEngagement(string $engagementId): void
{
$this->getInstance()->engagements()->delete((int) $engagementId);
}
public function getAssociationsData(array $ids, string $fromObject, string $toObject): array
{
$associationData = [];
$idChunks = array_chunk($ids, self::ASSOCIATIONS_BATCH_SIZE_LIMIT);
foreach ($idChunks as $idChunk) {
try {
$batchInput = new \HubSpot\Client\Crm\Associations\Model\BatchInputPublicObjectId();
$batchInput->setInputs(array_map(function ($id) {
$publicObjectId = new \HubSpot\Client\Crm\Associations\Model\PublicObjectId();
$publicObjectId->setId($id);
return $publicObjectId;
}, $idChunk));
$associatedObjectsData = $this
->getNewInstance()
->crm()
->associations()
->batchApi()
->read($fromObject, $toObject, $batchInput);
if ($associatedObjectsData instanceof \HubSpot\Client\Crm\Associations\Model\BatchResponsePublicAssociationMulti) {
foreach ($associatedObjectsData->getResults() as $association) {
$from = $association->getFrom()->getId();
$toAssociations = $association->getTo();
if (! empty($toAssociations)) {
$associationData[$from] = array_map(function ($item) {
return $item->getId();
}, $toAssociations);
}
}
}
// } catch (RateLimitException $e) {
// throw $e;
} catch (\Exception $e) {
$this->log->error('[Hubspot] Failed to fetch associations', [
'from_object' => $fromObject,
'to_object' => $toObject,
'reason' => $e->getMessage(),
]);
}
}
return $associationData;
}
/**
* @throws \Exception
*/
private function getNoteAssociationType(NoteObject $noteObject): string
{
return match($noteObject) {
NoteObject::Opportunity => 'note_to_deal',
NoteObject::Lead, NoteObject::Contact => 'note_to_contact', // or 'note_to_lead' if your portal supports it
NoteObject::Account => 'note_to_company',
NoteObject::Call, NoteObject::Event => throw new \Exception('Not supported'),
};
}
/**
* @throws \Exception
*/
private function getNoteObject(NoteObject $noteObject): string
{
return match($noteObject) {
NoteObject::Opportunity => 'deal',
NoteObject::Lead, NoteObject::Contact => 'contact',
NoteObject::Account => 'company',
NoteObject::Call, NoteObject::Event => throw new \Exception('Not supported'),
};
}
public function addAssociations(string $objectType, string $associationType, array $payload): Response
{
$endpoint = "/crm/v4/associations/$objectType/$associationType/batch/create";
return $this->makeRequest($endpoint, 'POST', $payload);
}
public function removeAssociations(string $objectType, string $associationType, array $payload): Response
{
$endpoint = "/crm/v4/associations/$objectType/$associationType/batch/archive";
return $this->makeRequest($endpoint, 'POST', $payload);
}
}...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
18397
|
794
|
10
|
2026-05-11T11:15:27.969459+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778498127969_m1.jpg...
|
PhpStorm
|
faVsco.js – laravel.log
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
JY-20725-handle-HS-search Project: faVsco.js, menu
JY-20725-handle-HS-search-rate-limit, menu
Start Listening for PHP Debug Connections
HandleHubspotRateLimitTest
Run 'HandleHubspotRateLimitTest'
Debug 'HandleHubspotRateLimitTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
2
67
3
Previous Highlighted Error
Next Highlighted Error
<?php
declare(strict_types=1);
namespace Jiminny\Services\Crm\Hubspot;
use HubSpot\Client\Crm\Deals\ApiException as DealApiException;
use HubSpot\Client\Crm\Contacts\ApiException as ContactApiException;
use HubSpot\Client\Crm\Companies\ApiException as CompanyApiException;
use HubSpot\Client\Crm\Contacts\Model\SimplePublicObjectWithAssociations as ContactsWithAssociations;
use HubSpot\Client\Crm\Companies\Model\SimplePublicObjectWithAssociations as CompaniesWithAssociations;
use HubSpot\Client\Crm\Deals\Model\SimplePublicObjectWithAssociations as DealWithAssociations;
use HubSpot\Client\Crm\Objects\Model\SimplePublicObjectInput;
use HubSpot\Client\Crm\Objects\Model\SimplePublicObjectWithAssociations as ObjectWithAssociations;
use HubSpot\Client\Crm\Pipelines\Model\Error;
use HubSpot\Client\Crm\Pipelines\Model\PipelineStage;
use HubSpot\Client\Crm\Properties\Model\Property;
use HubSpot\Discovery\Discovery;
use Jiminny\Exceptions\CrmException;
use Jiminny\Exceptions\RateLimitException;
use Jiminny\Exceptions\SocialAccountTokenInvalidException;
use Jiminny\Jobs\Crm\NoteObject;
use Jiminny\Models\Crm\Field;
use Jiminny\Services\Crm\BaseClient;
use Jiminny\Services\Crm\Hubspot\DTO\Response\Owner;
use Jiminny\Services\SocialAccountService;
use SevenShores\Hubspot\Exceptions\BadRequest;
use SevenShores\Hubspot\Exceptions\HubspotException;
use SevenShores\Hubspot\Factory;
use SevenShores\Hubspot\Http\Response;
use Jiminny\Services\Crm\Hubspot\Pagination\HubspotPaginationService;
use Illuminate\Support\Facades\Redis;
use Throwable;
/**
* @phpstan-type CrmFieldOption array{id:string, label:string, value?:string}
*/
class Client extends BaseClient implements HubspotClientInterface
{
public const string MIN_API_VERSION = '2';
public const string BASE_URL = '[URL_WITH_CREDENTIALS] T
* @param callable(): T $apiCall
* @return T
*
* @throws RateLimitException
*/
private function executeRequest(callable $apiCall)
{
$cacheKey = $this->getRateLimitCacheKey();
$cachedRetryAfter = Redis::get($cacheKey);
if (is_string($cachedRetryAfter) && is_numeric($cachedRetryAfter)) {
throw new RateLimitException(
'Hubspot rate limit (cached circuit-breaker)',
(int) $cachedRetryAfter,
);
}
try {
return $apiCall();
} catch (Throwable $e) {
if ($this->isHubspotRateLimit($e)) {
$retryAfter = $this->parseRetryAfter($e);
Redis::setex($cacheKey, $retryAfter, (string) $retryAfter);
$this->log->warning('[Hubspot] Received 429 from API', [
'team_id' => $this->config->team_id,
'config_id' => $this->config->getId(),
'retry_after' => $retryAfter,
'reason' => $e->getMessage(),
]);
throw new RateLimitException('Hubspot returned 429', $retryAfter, $e);
}
throw $e;
}
}
private function getRateLimitCacheKey(): string
{
return sprintf('hubspot:ratelimit:portal:%d', $this->config->getId());
}
public function isHubspotRateLimit(Throwable $e): bool
{
if ($e instanceof BadRequest
|| $e instanceof DealApiException
|| $e instanceof ContactApiException
|| $e instanceof CompanyApiException
|| $e instanceof \GuzzleHttp\Exception\RequestException
) {
return (int) $e->getCode() === 429;
}
return false;
}
public function parseRetryAfter(Throwable $e): int
{
if (method_exists($e, 'getResponseHeaders')) {
$headers = $e->getResponseHeaders() ?: [];
$value = $headers['Retry-After'] ?? $headers['retry-after'] ?? null;
if (is_array($value)) {
$value = $value[0] ?? null;
}
if (is_numeric($value)) {
return (int) $value;
}
}
$message = strtolower($e->getMessage());
if (str_contains($message, 'daily')) {
return 600;
}
if (str_contains($message, 'ten secondly')) {
return 10;
}
if (str_contains($message, 'secondly')) {
return 1;
}
$this->log->warning('[Hubspot] No retry-after header or known message, using default', [
'exception_class' => get_class($e),
'message' => $message,
]);
return 10;
}
public function parseMessage(Throwable $e): string
{
if (! method_exists($e, 'getResponseBody')) {
return '';
}
$body = $e->getResponseBody();
if (is_string($body)) {
$body = json_decode($body, true) ?? [];
}
if (! is_array($body)) {
return '';
}
return (string) ($body['message'] ?? '');
}
public function getMinimumApiVersion(): string
{
return self::MIN_API_VERSION;
}
public function getInstance(): Factory
{
return new Factory([
'key' => $this->accessToken,
'oauth2' => true,
'base_url' => $this->baseUrl,
]);
}
public function getNewInstance(): Discovery
{
return \HubSpot\Factory::createWithAccessToken($this->accessToken);
}
/**
* Secondly and daily limits for Hubspot API
*
* Product Tier: Free & Starter | Professional & Enterprise | API add-on (any tier)
* Burst: 100/10 seconds | 150/10 seconds | 200/10 seconds
* Daily: 250,000 | 500,000 | 1,000,000
*
* Official documentation states: The search endpoints are rate limited to five requests per second.
* Since with 5 RPS were still hitting secondly rate limits we lowered it to 4
*/
public function getPaginatedData(array $payload, string $type, int $offset = 0): array
{
$total = 0;
$lastId = null;
$rows = [];
foreach ($this->getPaginatedDataGenerator($payload, $type, $offset, $total, $lastId) as $row) {
$rows[] = $row;
}
return ['results' => $rows, 'total' => $total, 'last_record' => $lastId];
}
/**
* @throws HubspotException
* @throws SocialAccountTokenInvalidException
* @throws BadRequest
*/
public function getPaginatedDataGenerator(
array $payload,
string $type,
int $offset = 0,
int &$total = 0,
?string &$lastRecordId = null
): \Generator {
return $this->paginationService->getPaginatedDataGenerator(
$this,
$payload,
$type,
$offset,
$total,
$lastRecordId
);
}
/**
* Execute a search request against HubSpot CRM objects with rate limiting.
*
* @param string $objectType The object type ('deals', 'companies', 'contacts', 'calls')
* @param array<string, mixed> $payload The search payload with filters, sorts, properties, etc.
* @return array The search response with 'results', 'total', 'paging' keys
* @throws RateLimitException When rate limit is hit
* @throws HubspotException On API errors
*/
public function search(string $objectType, array $payload): array
{
$endpoint = self::BASE_URL . "/crm/v3/objects/{$objectType}/search";
return $this->executeRequest(function () use ($endpoint, $payload) {
$response = $this->getInstance()->getClient()->request('POST', $endpoint, ['json' => $payload]);
return $response->toArray();
});
}
/**
* @throws DealApiException
* @throws CrmException
*/
public function getOpportunityById(string $crmId, array $fields): array
{
try {
$deal = $this->getNewInstance()->crm()->deals()->basicApi()->getById(
$crmId,
implode(',', $fields),
'companies,contacts'
);
} catch (DealApiException $e) {
$this->log->info('[Hubspot] Failed to fetch opportunity', [
'crm_id' => $crmId,
'reason' => $e->getMessage(),
]);
throw $e;
}
if (! $deal instanceof DealWithAssociations) {
throw new CrmException('Deal not found');
}
return [
'id' => $deal->getId(),
'properties' => $deal->getProperties(),
'associations' => $deal->getAssociations(),
];
}
/**
* Generic batch read method for HubSpot objects
*
* @param string $objectType The object type ('deals', 'companies', 'contacts')
* @param array<string> $crmIds Array of HubSpot object IDs (max 100)
* @param array<string> $fields Array of property names to fetch
*
* @return array<string, array> Array keyed by CRM ID with object data
*/
private function batchReadObjects(string $objectType, array $crmIds, array $fields): array
{
if (empty($crmIds)) {
return [];
}
$this->validateBatchSize($objectType, $crmIds);
$this->ensureValidToken();
try {
$batchConfig = $this->createBatchConfiguration($objectType);
$batchReadRequest = $this->prepareBatchRequest($batchConfig, $crmIds, $fields);
$response = $batchConfig['api']->read($batchReadRequest);
$this->validateApiResponse($response, $objectType);
$results = $this->processApiResults($response);
$this->logBatchResults($objectType, $crmIds, $results);
return $results;
} catch (\Throwable $e) {
$this->handleBatchError($e, $objectType, $crmIds);
}
}
private function validateBatchSize(string $objectType, array $crmIds): void
{
if (count($crmIds) > 100) {
throw new \InvalidArgumentException("Batch size cannot exceed 100 {$objectType}");
}
}
private function createBatchConfiguration(string $objectType): array
{
$configurations = [
'deals' => [
'batchReadRequest' => new \HubSpot\Client\Crm\Deals\Model\BatchReadInputSimplePublicObjectId(),
'inputClass' => \HubSpot\Client\Crm\Deals\Model\SimplePublicObjectId::class,
'api' => $this->getNewInstance()->crm()->deals()->batchApi(),
],
'companies' => [
'batchReadRequest' => new \HubSpot\Client\Crm\Companies\Model\BatchReadInputSimplePublicObjectId(),
'inputClass' => \HubSpot\Client\Crm\Companies\Model\SimplePublicObjectId::class,
'api' => $this->getNewInstance()->crm()->companies()->batchApi(),
],
'contacts' => [
'batchReadRequest' => new \HubSpot\Client\Crm\Contacts\Model\BatchReadInputSimplePublicObjectId(),
'inputClass' => \HubSpot\Client\Crm\Contacts\Model\SimplePublicObjectId::class,
'api' => $this->getNewInstance()->crm()->contacts()->batchApi(),
],
];
if (! isset($configurations[$objectType])) {
throw new \InvalidArgumentException("Unsupported object type: {$objectType}");
}
return $configurations[$objectType];
}
private function prepareBatchRequest(array $batchConfig, array $crmIds, array $fields): object
{
$batchReadRequest = $batchConfig['batchReadRequest'];
$inputClass = $batchConfig['inputClass'];
$inputs = array_map(function ($crmId) use ($inputClass) {
$input = new $inputClass();
$input->setId($crmId);
return $input;
}, $crmIds);
$batchReadRequest->setInputs($inputs);
$batchReadRequest->setProperties($fields);
return $batchReadRequest;
}
private function validateApiResponse($response, string $objectType): void
{
if (! $response) {
throw new CrmException("HubSpot API returned null response for {$objectType} batch read");
}
}
private function processApiResults($response): array
{
$results = [];
$responseResults = $response->getResults();
if ($responseResults) {
foreach ($responseResults as $object) {
if ($object && $object->getId()) {
$results[$object->getId()] = [
'id' => $object->getId(),
'properties' => $object->getProperties() ?: [],
];
}
}
}
return $results;
}
private function logBatchResults(string $objectType, array $crmIds, array $results): void
{
$this->log->info("[HubSpot] Batch fetched {$objectType}", [
'requested_count' => count($crmIds),
'returned_count' => count($results),
'crm_ids' => $crmIds,
]);
}
private function handleBatchError(\Throwable $e, string $objectType, array $crmIds): void
{
$errorMessage = $e->getMessage() ?: 'Unknown error';
$errorTrace = $e->getTraceAsString() ?: 'No trace available';
$this->log->error("[HubSpot] Failed to batch fetch {$objectType}", [
'crm_ids' => $crmIds,
'error' => $errorMessage,
'trace' => $errorTrace,
]);
throw new CrmException("Failed to batch fetch {$objectType}: " . $errorMessage);
}
/**
* Batch read multiple opportunities by their CRM IDs
*
* @param array<string> $crmIds Array of HubSpot deal IDs (max 100)
* @param array<string> $fields Array of property names to fetch
*
* @return array<string, array> Array keyed by CRM ID with opportunity data
*/
public function getOpportunitiesByIds(array $crmIds, array $fields): array
{
return $this->batchReadObjects('deals', $crmIds, $fields);
}
/**
* Batch read multiple companies by their CRM IDs
*
* @param array<string> $crmIds Array of HubSpot company IDs (max 100)
* @param array<string> $fields Array of property names to fetch
*
* @return array<string, array> Array keyed by CRM ID with company data
*/
public function getCompaniesByIds(array $crmIds, array $fields): array
{
return $this->batchReadObjects('companies', $crmIds, $fields);
}
/**
* Batch read multiple contacts by their CRM IDs
*
* @param array<string> $crmIds Array of HubSpot contact IDs (max 100)
* @param array<string> $fields Array of property names to fetch
*
* @return array<string, array> Array keyed by CRM ID with contact data
*/
public function getContactsByIds(array $crmIds, array $fields): array
{
return $this->batchReadObjects('contacts', $crmIds, $fields);
}
/**
* @throws CompanyApiException
* @throws CrmException
*/
public function getAccountById(string $crmId, array $fields): array
{
try {
$company = $this->getNewInstance()->crm()->companies()->basicApi()->getById(
$crmId,
implode(',', $fields),
);
} catch (CompanyApiException $e) {
$this->log->info('[Hubspot] Failed to fetch account', [
'crm_id' => $crmId,
'reason' => $e->getMessage(),
]);
throw $e;
}
if (! $company instanceof CompaniesWithAssociations) {
throw new CrmException('Account not found');
}
return [
'id' => $company->getId(),
'properties' => $company->getProperties(),
];
}
/**
* @throws ContactApiException
* @throws CrmException
*/
public function getContactById(string $crmId, array $fields): array
{
try {
$contact = $this->getNewInstance()->crm()->contacts()->basicApi()->getById(
$crmId,
implode(',', $fields)
);
} catch (ContactApiException $e) {
$this->log->info('[Hubspot] Failed to fetch contact', [
'crm_id' => $crmId,
'reason' => $e->getMessage(),
]);
throw $e;
}
if (! $contact instanceof ContactsWithAssociations) {
throw new CrmException('Contact not found');
}
return [
'id' => $contact->getId(),
'properties' => $contact->getProperties(),
];
}
/**
* This is email search request that Hubspot offers as GET (more generous quota)
*/
public function getContactByEmail(string $email, array $fields = []): array
{
try {
$contact = $this->getNewInstance()->crm()->contacts()->basicApi()->getById(
$email,
implode(',', $fields),
null,
false,
'email'
);
return [
'id' => $contact->getId(),
'properties' => $contact->getProperties(),
];
} catch (ContactApiException $e) {
$this->log->info('[Hubspot] Failed to fetch contact', [
'email' => $email,
'reason' => $e->getMessage(),
]);
return [];
}
}
/**
* @throws CrmException
*/
public function fetchProperty(string $objectType, string $propertyId): Property
{
$result = $this->getNewInstance()->crm()->properties()->coreApi()->getByName($objectType, $propertyId);
if (! $result instanceof Property) {
$this->log->error('[Hubspot] Failed to fetch property', [
'object_type' => $objectType,
'property_id' => $propertyId,
'reason' => $result->getMessage(),
]);
throw new CrmException('Failed to fetch property');
}
return $result;
}
/**
* @return array<CrmFieldOption>
*/
public function fetchPropertyOptions(string $objectType, string $propertyId): array
{
/** @var array<CrmFieldOption> */
return $this->fetchProperty($objectType, $propertyId)->getOptions();
}
/**
* @return array<array{id:string, label:string, deleted:bool}>
*/
public function fetchCallDispositions(): array
{
/** @var Response $response */
$response = $this->getInstance()->engagements()->getCallDispositions();
/**
* @var array<array{
* id:string,
* label:string,
* deleted: bool
* }>
*/
return $response->toArray();
}
/**
* @return array<CrmFieldOption>
*/
public function fetchOpportunityPipelineStages(): array
{
$stages = [];
$apiResponse = $this->getNewInstance()->crm()->pipelines()->pipelinesApi()->getAll('deals');
if ($apiResponse instanceof Error) {
$this->log->error('[Hubspot] Failed to fetch opportunity pipelines', [
'reason' => $apiResponse->getMessage(),
]);
return [];
}
foreach ($apiResponse->getResults() as $pipeline) {
$pipelineStages = array_map(
static function (PipelineStage $stage) {
return [
'id' => $stage->getId(),
'label' => $stage->getLabel(),
];
},
$pipeline->getStages()
);
$stages = array_merge($stages, $pipelineStages);
}
return $stages;
}
public function fetchOpportunityPipelines(): array
{
$pipelines = [];
try {
$apiResponse = $this->makeRequest('/crm/v3/pipelines/deals');
} catch (\Exception $e) {
$this->log->info('[Hubspot] Failed to fetch opportunity pipelines', [
'reason' => $e->getMessage(),
]);
return [];
}
$response = $apiResponse->toArray();
foreach ($response['results'] as $pipeline) {
$pipelines[] = [
'id' => $pipeline['id'],
'label' => $pipeline['label'],
];
}
return $pipelines;
}
/**
* @return array<CrmFieldOption>
*/
public function fetchMeetingOutcomeFieldOptions(Field $field): array
{
return $field->getCrmProviderId() === 'meetingOutcome'
? $this->fetchMeetingOutcomeTypes()
: $this->fetchCallActivityTypes();
}
public function fetchMeetingOutcomeTypes(): array
{
return $this->extractMeetingTypeOptions(
'[URL_WITH_CREDENTIALS] Response $response */
$response = $this->getInstance()
->getClient()
->request('GET', $endpoint);
/**
* @var array<array{
* value: string,
* label: string,
* displayOrder: int
* }> $optionData
*/
$optionData = $response->toArray()['options'] ?? [];
$options = [];
foreach ($optionData as $item) {
$options[] = [
'id' => $item['value'],
'value' => $item['value'],
'label' => $item['label'],
'display_order' => $item['displayOrder'],
];
}
return $options;
}
/**
* @return array<CrmFieldOption>
*/
public function fetchDispositionFieldOptions(): array
{
$options = [];
$dispositions = $this->fetchCallDispositions();
foreach ($dispositions as $disposition) {
if ($disposition['deleted'] !== false) {
continue;
}
$option['value'] = $disposition['id'];
$option['id'] = $disposition['id'];
$option['label'] = $disposition['label'];
$options[] = $option;
}
return $options;
}
/**
* @return array<CrmFieldOption>
*/
public function fetchOpportunityFieldOptions(Field $field): array
{
if ($field->isStageField()) {
return $this->fetchOpportunityPipelineStages();
}
if ($field->isPipelineField()) {
return $this->fetchOpportunityPipelines();
}
return $this->fetchPropertyOptions('deals', $field->getCrmProviderId());
}
/**
* @throws BadRequest
* @throws HubspotException
*/
public function makeRequest(string $endpoint, $method = 'GET', $payload = [], ?string $queryString = null)
{
$endpoint = self::BASE_URL . $endpoint;
if ($method === 'GET') {
return $this->getInstance()->getClient()?->request(
method: $method,
endpoint: $endpoint,
query_string: $queryString
);
} else {
return $this->getInstance()->getClient()->request($method, $endpoint, [
'json' => ($payload),
]);
}
}
/**
* @throws BadRequest
* @throws HubspotException
*/
public function createMeeting(array $payload): Response
{
$endpoint = '/crm/v3/objects/meetings';
return $this->makeRequest($endpoint, 'POST', $payload);
}
/**
* @throws BadRequest
* @throws HubspotException
*/
public function updateMeeting(string $meetingId, array $payload): Response
{
$endpoint = '/crm/v3/objects/meetings/' . $meetingId;
return $this->makeRequest($endpoint, 'PATCH', $payload);
}
/**
* @throws \Exception
*/
public function createNote(
string $body,
string $ownerId,
int $timestamp,
string $objectId,
NoteObject $noteObject
): ?string {
try {
$noteInput = new SimplePublicObjectInput([
'properties' => [
'hs_note_body' => $body,
'hubspot_owner_id' => $ownerId,
'hs_timestamp' => $timestamp,
],
]);
// Create note
$note = $this->getNewInstance()->crm()->objects()->basicApi()->create('note', $noteInput);
$this->getNewInstance()->crm()->objects()->associationsApi()->create(
'note',
$note->getId(),
$this->getNoteObject($noteObject),
$objectId,
$this->getNoteAssociationType($noteObject),
);
return $note->getId();
} catch (\Exception $e) {
$this->log->error('[Hubspot] Failed to create note', [
'objectId' => $objectId,
'noteObject' => $noteObject->getObjectType(),
'reason' => $e->getMessage(),
]);
\Sentry::captureException($e);
}
return null;
}
public function updateEngagement(string $objectId, array $engagement, array $metadata): void
{
$this->getInstance()->engagements()->update($objectId, $engagement, $metadata);
}
public function getEngagementData(string $engagementId): array
{
$engagement = $this->getInstance()->engagements()->get($engagementId);
return $engagement->toArray();
}
public function createEngagement(array $engagement, array $associations, array $metadata): Response
{
return $this->getInstance()
->engagements()
->create($engagement, $associations, $metadata);
}
public function isUnauthorizedException(\Exception $e): bool
{
// Check for specific HubSpot API exception types first
if ($e instanceof BadRequest) {
// BadRequest can contain 401 status codes
return $e->getCode() === 401;
}
// Check for HTTP client exceptions with status codes
if ($e instanceof \GuzzleHttp\Exception\RequestException && $e->hasResponse()) {
$response = $e->getResponse();
if ($response !== null) {
return $response->getStatusCode() === 401;
}
}
// Check for Guzzle HTTP exceptions
if ($e instanceof \GuzzleHttp\Exception\ClientException) {
return $e->getCode() === 401;
}
// Fallback to string matching as last resort, but be more specific
$message = strtolower($e->getMessage());
return str_contains($message, '401 unauthorized') ||
str_contains($message, 'http 401') ||
str_contains($message, 'status code 401') ||
(preg_match('/\b401\b/', $message) && str_contains($message, 'unauthorized'));
}
/**
* Validates and refreshes the access token if needed before API requests.
* This ensures long-running processes don't fail due to token expiration.
*
* @throws SocialAccountTokenInvalidException
*/
public function ensureValidToken(): void
{
if ($this->oauthAccount === null) {
return;
}
$newToken = $this->tokenManager->ensureValidToken($this->oauthAccount);
if ($newToken !== null) {
$this->accessToken = $newToken;
}
}
public function getConfig()
{
return $this->config;
}
// returns only active (archived=false)
public function getOwners(): array
{
return $this->getNewInstance()->crm()->owners()->getAll();
}
/**
* @param bool $archived
*
* @return array<Owner>|[]
*/
public function getOwnersArchived(bool $archived = true): array
{
$endpoint = '/crm/v3/owners';
$queryParams = [
'archived' => $archived ? 'true' : 'false',
];
$queryString = http_build_query($queryParams);
$owners = [];
try {
$response = $this->makeRequest(endpoint: $endpoint, queryString: $queryString);
$responseData = $response?->toArray();
foreach ($responseData['results'] as $result) {
try {
$owners[] = Owner::create($result);
} catch (Throwable $e) {
$this->log->error('[HubSpot] Failed to process owner data', [
'result' => $result,
'error' => $e->getMessage(),
]);
continue;
}
}
} catch (Throwable $e) {
$this->log->error('HubSpot] Failed to fetch owners', [
'archived' => $archived,
'error' => $e->getMessage(),
]);
return [];
}
return $owners;
}
public function getMeeting(string $engagementId): ObjectWithAssociations
{
return $this->getNewInstance()->crm()->objects()->basicApi()
->getById('meeting', $engagementId, null, 'contact,company,deal');
}
public function deleteEngagement(string $engagementId): void
{
$this->getInstance()->engagements()->delete((int) $engagementId);
}
public function getAssociationsData(array $ids, string $fromObject, string $toObject): array
{
$associationData = [];
$idChunks = array_chunk($ids, self::ASSOCIATIONS_BATCH_SIZE_LIMIT);
foreach ($idChunks as $idChunk) {
try {
$batchInput = new \HubSpot\Client\Crm\Associations\Model\BatchInputPublicObjectId();
$batchInput->setInputs(array_map(function ($id) {
$publicObjectId = new \HubSpot\Client\Crm\Associations\Model\PublicObjectId();
$publicObjectId->setId($id);
return $publicObjectId;
}, $idChunk));
$associatedObjectsData = $this
->getNewInstance()
->crm()
->associations()
->batchApi()
->read($fromObject, $toObject, $batchInput);
if ($associatedObjectsData instanceof \HubSpot\Client\Crm\Associations\Model\BatchResponsePublicAssociationMulti) {
foreach ($associatedObjectsData->getResults() as $association) {
$from = $association->getFrom()->getId();
$toAssociations = $association->getTo();
if (! empty($toAssociations)) {
$associationData[$from] = array_map(function ($item) {
return $item->getId();
}, $toAssociations);
}
}
}
// } catch (RateLimitException $e) {
// throw $e;
} catch (\Exception $e) {
$this->log->error('[Hubspot] Failed to fetch associations', [
'from_object' => $fromObject,
'to_object' => $toObject,
'reason' => $e->getMessage(),
]);
}
}
return $associationData;
}
/**
* @throws \Exception
*/
private function getNoteAssociationType(NoteObject $noteObject): string
{
return match($noteObject) {
NoteObject::Opportunity => 'note_to_deal',
NoteObject::Lead, NoteObject::Contact => 'note_to_contact', // or 'note_to_lead' if your portal supports it
NoteObject::Account => 'note_to_company',
NoteObject::Call, NoteObject::Event => throw new \Exception('Not supported'),
};
}
/**
* @throws \Exception
*/
private function getNoteObject(NoteObject $noteObject): string
{
return match($noteObject) {
NoteObject::Opportunity => 'deal',
NoteObject::Lead, NoteObject::Contact => 'contact',
NoteObject::Account => 'company',
NoteObject::Call, NoteObject::Event => throw new \Exception('Not supported'),
};
}
public function addAssociations(string $objectType, string $associationType, array $payload): Response
{
$endpoint = "/crm/v4/associations/$objectType/$associationType/batch/create";
return $this->makeRequest($endpoint, 'POST', $payload);
}
public function removeAssociations(string $objectType, string $associationType, array $payload): Response
{
$endpoint = "/crm/v4/associations/$objectType/$associationType/batch/archive";
return $this->makeRequest($endpoint, 'POST', $payload);
}
}
Show Replace Field
Search History
429
New Line
Match Case
Words
Regex
Replace History
Replace...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JY-20725-handle-HS-search-rate-limit, menu","depth":5,"on_screen":true,"help_text":"Git Branch: JY-20725-handle-HS-search-rate-limit","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"HandleHubspotRateLimitTest","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'HandleHubspotRateLimitTest'","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Debug 'HandleHubspotRateLimitTest'","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More Actions","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JetBrains AI","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Search Everywhere","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"IDE and Project Settings","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.088194445,"height":0.027777778},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"2","depth":4,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"67","depth":4,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"3","depth":4,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Next Highlighted Error","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Services\\Crm\\Hubspot;\n\nuse HubSpot\\Client\\Crm\\Deals\\ApiException as DealApiException;\nuse HubSpot\\Client\\Crm\\Contacts\\ApiException as ContactApiException;\nuse HubSpot\\Client\\Crm\\Companies\\ApiException as CompanyApiException;\nuse HubSpot\\Client\\Crm\\Contacts\\Model\\SimplePublicObjectWithAssociations as ContactsWithAssociations;\nuse HubSpot\\Client\\Crm\\Companies\\Model\\SimplePublicObjectWithAssociations as CompaniesWithAssociations;\nuse HubSpot\\Client\\Crm\\Deals\\Model\\SimplePublicObjectWithAssociations as DealWithAssociations;\nuse HubSpot\\Client\\Crm\\Objects\\Model\\SimplePublicObjectInput;\nuse HubSpot\\Client\\Crm\\Objects\\Model\\SimplePublicObjectWithAssociations as ObjectWithAssociations;\nuse HubSpot\\Client\\Crm\\Pipelines\\Model\\Error;\nuse HubSpot\\Client\\Crm\\Pipelines\\Model\\PipelineStage;\nuse HubSpot\\Client\\Crm\\Properties\\Model\\Property;\nuse HubSpot\\Discovery\\Discovery;\nuse Jiminny\\Exceptions\\CrmException;\nuse Jiminny\\Exceptions\\RateLimitException;\nuse Jiminny\\Exceptions\\SocialAccountTokenInvalidException;\nuse Jiminny\\Jobs\\Crm\\NoteObject;\nuse Jiminny\\Models\\Crm\\Field;\nuse Jiminny\\Services\\Crm\\BaseClient;\nuse Jiminny\\Services\\Crm\\Hubspot\\DTO\\Response\\Owner;\nuse Jiminny\\Services\\SocialAccountService;\nuse SevenShores\\Hubspot\\Exceptions\\BadRequest;\nuse SevenShores\\Hubspot\\Exceptions\\HubspotException;\nuse SevenShores\\Hubspot\\Factory;\nuse SevenShores\\Hubspot\\Http\\Response;\nuse Jiminny\\Services\\Crm\\Hubspot\\Pagination\\HubspotPaginationService;\nuse Illuminate\\Support\\Facades\\Redis;\nuse Throwable;\n\n/**\n * @phpstan-type CrmFieldOption array{id:string, label:string, value?:string}\n */\nclass Client extends BaseClient implements HubspotClientInterface\n{\n public const string MIN_API_VERSION = '2';\n\n public const string BASE_URL = 'https://api.hubapi.com';\n\n public const int ASSOCIATIONS_BATCH_SIZE_LIMIT = 1000;\n\n private HubspotPaginationService $paginationService;\n private HubspotTokenManager $tokenManager;\n\n public function __construct(\n SocialAccountService $socialAccountService,\n HubspotPaginationService $paginationService,\n HubspotTokenManager $tokenManager\n ) {\n parent::__construct($socialAccountService);\n $this->paginationService = $paginationService;\n $this->tokenManager = $tokenManager;\n\n $this->setBaseUrl(self::BASE_URL);\n $this->setVersion(self::MIN_API_VERSION);\n }\n\n /**\n * Reacts to a rate limits (429) from HubSpot by translating it\n * into a RateLimitException carrying retry_after.\n *\n * Wrap any outbound HubSpot call (SDK or raw HTTP) like:\n *\n * $this->executeRequest(fn () => $this->getNewInstance()->crm()->...);\n *\n * @template T\n * @param callable(): T $apiCall\n * @return T\n *\n * @throws RateLimitException\n */\n private function executeRequest(callable $apiCall)\n {\n $cacheKey = $this->getRateLimitCacheKey();\n\n $cachedRetryAfter = Redis::get($cacheKey);\n if (is_string($cachedRetryAfter) && is_numeric($cachedRetryAfter)) {\n throw new RateLimitException(\n 'Hubspot rate limit (cached circuit-breaker)',\n (int) $cachedRetryAfter,\n );\n }\n\n try {\n return $apiCall();\n } catch (Throwable $e) {\n if ($this->isHubspotRateLimit($e)) {\n $retryAfter = $this->parseRetryAfter($e);\n\n Redis::setex($cacheKey, $retryAfter, (string) $retryAfter);\n\n $this->log->warning('[Hubspot] Received 429 from API', [\n 'team_id' => $this->config->team_id,\n 'config_id' => $this->config->getId(),\n 'retry_after' => $retryAfter,\n 'reason' => $e->getMessage(),\n ]);\n\n throw new RateLimitException('Hubspot returned 429', $retryAfter, $e);\n }\n\n throw $e;\n }\n }\n\n private function getRateLimitCacheKey(): string\n {\n return sprintf('hubspot:ratelimit:portal:%d', $this->config->getId());\n }\n\n public function isHubspotRateLimit(Throwable $e): bool\n {\n if ($e instanceof BadRequest\n || $e instanceof DealApiException\n || $e instanceof ContactApiException\n || $e instanceof CompanyApiException\n || $e instanceof \\GuzzleHttp\\Exception\\RequestException\n ) {\n return (int) $e->getCode() === 429;\n }\n\n return false;\n }\n\n public function parseRetryAfter(Throwable $e): int\n {\n if (method_exists($e, 'getResponseHeaders')) {\n $headers = $e->getResponseHeaders() ?: [];\n $value = $headers['Retry-After'] ?? $headers['retry-after'] ?? null;\n if (is_array($value)) {\n $value = $value[0] ?? null;\n }\n if (is_numeric($value)) {\n return (int) $value;\n }\n }\n\n $message = strtolower($e->getMessage());\n\n if (str_contains($message, 'daily')) {\n return 600;\n }\n if (str_contains($message, 'ten secondly')) {\n return 10;\n }\n if (str_contains($message, 'secondly')) {\n return 1;\n }\n\n $this->log->warning('[Hubspot] No retry-after header or known message, using default', [\n 'exception_class' => get_class($e),\n 'message' => $message,\n ]);\n\n return 10;\n }\n\n public function parseMessage(Throwable $e): string\n {\n if (! method_exists($e, 'getResponseBody')) {\n return '';\n }\n\n $body = $e->getResponseBody();\n if (is_string($body)) {\n $body = json_decode($body, true) ?? [];\n }\n\n if (! is_array($body)) {\n return '';\n }\n\n return (string) ($body['message'] ?? '');\n }\n\n public function getMinimumApiVersion(): string\n {\n return self::MIN_API_VERSION;\n }\n\n public function getInstance(): Factory\n {\n return new Factory([\n 'key' => $this->accessToken,\n 'oauth2' => true,\n 'base_url' => $this->baseUrl,\n ]);\n }\n\n public function getNewInstance(): Discovery\n {\n return \\HubSpot\\Factory::createWithAccessToken($this->accessToken);\n }\n\n /**\n * Secondly and daily limits for Hubspot API\n *\n * Product Tier: Free & Starter | Professional & Enterprise | API add-on (any tier)\n * Burst: 100/10 seconds | 150/10 seconds | 200/10 seconds\n * Daily: 250,000 | 500,000 | 1,000,000\n *\n * Official documentation states: The search endpoints are rate limited to five requests per second.\n * Since with 5 RPS were still hitting secondly rate limits we lowered it to 4\n */\n public function getPaginatedData(array $payload, string $type, int $offset = 0): array\n {\n $total = 0;\n $lastId = null;\n $rows = [];\n foreach ($this->getPaginatedDataGenerator($payload, $type, $offset, $total, $lastId) as $row) {\n $rows[] = $row;\n }\n\n return ['results' => $rows, 'total' => $total, 'last_record' => $lastId];\n }\n\n /**\n * @throws HubspotException\n * @throws SocialAccountTokenInvalidException\n * @throws BadRequest\n */\n public function getPaginatedDataGenerator(\n array $payload,\n string $type,\n int $offset = 0,\n int &$total = 0,\n ?string &$lastRecordId = null\n ): \\Generator {\n return $this->paginationService->getPaginatedDataGenerator(\n $this,\n $payload,\n $type,\n $offset,\n $total,\n $lastRecordId\n );\n }\n\n /**\n * Execute a search request against HubSpot CRM objects with rate limiting.\n *\n * @param string $objectType The object type ('deals', 'companies', 'contacts', 'calls')\n * @param array<string, mixed> $payload The search payload with filters, sorts, properties, etc.\n * @return array The search response with 'results', 'total', 'paging' keys\n * @throws RateLimitException When rate limit is hit\n * @throws HubspotException On API errors\n */\n public function search(string $objectType, array $payload): array\n {\n $endpoint = self::BASE_URL . \"/crm/v3/objects/{$objectType}/search\";\n\n return $this->executeRequest(function () use ($endpoint, $payload) {\n $response = $this->getInstance()->getClient()->request('POST', $endpoint, ['json' => $payload]);\n\n return $response->toArray();\n });\n }\n\n /**\n * @throws DealApiException\n * @throws CrmException\n */\n public function getOpportunityById(string $crmId, array $fields): array\n {\n try {\n $deal = $this->getNewInstance()->crm()->deals()->basicApi()->getById(\n $crmId,\n implode(',', $fields),\n 'companies,contacts'\n );\n } catch (DealApiException $e) {\n $this->log->info('[Hubspot] Failed to fetch opportunity', [\n 'crm_id' => $crmId,\n 'reason' => $e->getMessage(),\n ]);\n\n throw $e;\n }\n\n if (! $deal instanceof DealWithAssociations) {\n throw new CrmException('Deal not found');\n }\n\n return [\n 'id' => $deal->getId(),\n 'properties' => $deal->getProperties(),\n 'associations' => $deal->getAssociations(),\n ];\n }\n\n /**\n * Generic batch read method for HubSpot objects\n *\n * @param string $objectType The object type ('deals', 'companies', 'contacts')\n * @param array<string> $crmIds Array of HubSpot object IDs (max 100)\n * @param array<string> $fields Array of property names to fetch\n *\n * @return array<string, array> Array keyed by CRM ID with object data\n */\n private function batchReadObjects(string $objectType, array $crmIds, array $fields): array\n {\n if (empty($crmIds)) {\n return [];\n }\n\n $this->validateBatchSize($objectType, $crmIds);\n $this->ensureValidToken();\n\n try {\n $batchConfig = $this->createBatchConfiguration($objectType);\n $batchReadRequest = $this->prepareBatchRequest($batchConfig, $crmIds, $fields);\n $response = $batchConfig['api']->read($batchReadRequest);\n\n $this->validateApiResponse($response, $objectType);\n\n $results = $this->processApiResults($response);\n $this->logBatchResults($objectType, $crmIds, $results);\n\n return $results;\n } catch (\\Throwable $e) {\n $this->handleBatchError($e, $objectType, $crmIds);\n }\n }\n\n private function validateBatchSize(string $objectType, array $crmIds): void\n {\n if (count($crmIds) > 100) {\n throw new \\InvalidArgumentException(\"Batch size cannot exceed 100 {$objectType}\");\n }\n }\n\n private function createBatchConfiguration(string $objectType): array\n {\n $configurations = [\n 'deals' => [\n 'batchReadRequest' => new \\HubSpot\\Client\\Crm\\Deals\\Model\\BatchReadInputSimplePublicObjectId(),\n 'inputClass' => \\HubSpot\\Client\\Crm\\Deals\\Model\\SimplePublicObjectId::class,\n 'api' => $this->getNewInstance()->crm()->deals()->batchApi(),\n ],\n 'companies' => [\n 'batchReadRequest' => new \\HubSpot\\Client\\Crm\\Companies\\Model\\BatchReadInputSimplePublicObjectId(),\n 'inputClass' => \\HubSpot\\Client\\Crm\\Companies\\Model\\SimplePublicObjectId::class,\n 'api' => $this->getNewInstance()->crm()->companies()->batchApi(),\n ],\n 'contacts' => [\n 'batchReadRequest' => new \\HubSpot\\Client\\Crm\\Contacts\\Model\\BatchReadInputSimplePublicObjectId(),\n 'inputClass' => \\HubSpot\\Client\\Crm\\Contacts\\Model\\SimplePublicObjectId::class,\n 'api' => $this->getNewInstance()->crm()->contacts()->batchApi(),\n ],\n ];\n\n if (! isset($configurations[$objectType])) {\n throw new \\InvalidArgumentException(\"Unsupported object type: {$objectType}\");\n }\n\n return $configurations[$objectType];\n }\n\n private function prepareBatchRequest(array $batchConfig, array $crmIds, array $fields): object\n {\n $batchReadRequest = $batchConfig['batchReadRequest'];\n $inputClass = $batchConfig['inputClass'];\n\n $inputs = array_map(function ($crmId) use ($inputClass) {\n $input = new $inputClass();\n $input->setId($crmId);\n\n return $input;\n }, $crmIds);\n\n $batchReadRequest->setInputs($inputs);\n $batchReadRequest->setProperties($fields);\n\n return $batchReadRequest;\n }\n\n private function validateApiResponse($response, string $objectType): void\n {\n if (! $response) {\n throw new CrmException(\"HubSpot API returned null response for {$objectType} batch read\");\n }\n }\n\n private function processApiResults($response): array\n {\n $results = [];\n $responseResults = $response->getResults();\n\n if ($responseResults) {\n foreach ($responseResults as $object) {\n if ($object && $object->getId()) {\n $results[$object->getId()] = [\n 'id' => $object->getId(),\n 'properties' => $object->getProperties() ?: [],\n ];\n }\n }\n }\n\n return $results;\n }\n\n private function logBatchResults(string $objectType, array $crmIds, array $results): void\n {\n $this->log->info(\"[HubSpot] Batch fetched {$objectType}\", [\n 'requested_count' => count($crmIds),\n 'returned_count' => count($results),\n 'crm_ids' => $crmIds,\n ]);\n }\n\n private function handleBatchError(\\Throwable $e, string $objectType, array $crmIds): void\n {\n $errorMessage = $e->getMessage() ?: 'Unknown error';\n $errorTrace = $e->getTraceAsString() ?: 'No trace available';\n\n $this->log->error(\"[HubSpot] Failed to batch fetch {$objectType}\", [\n 'crm_ids' => $crmIds,\n 'error' => $errorMessage,\n 'trace' => $errorTrace,\n ]);\n\n throw new CrmException(\"Failed to batch fetch {$objectType}: \" . $errorMessage);\n }\n\n /**\n * Batch read multiple opportunities by their CRM IDs\n *\n * @param array<string> $crmIds Array of HubSpot deal IDs (max 100)\n * @param array<string> $fields Array of property names to fetch\n *\n * @return array<string, array> Array keyed by CRM ID with opportunity data\n */\n public function getOpportunitiesByIds(array $crmIds, array $fields): array\n {\n return $this->batchReadObjects('deals', $crmIds, $fields);\n }\n\n /**\n * Batch read multiple companies by their CRM IDs\n *\n * @param array<string> $crmIds Array of HubSpot company IDs (max 100)\n * @param array<string> $fields Array of property names to fetch\n *\n * @return array<string, array> Array keyed by CRM ID with company data\n */\n public function getCompaniesByIds(array $crmIds, array $fields): array\n {\n return $this->batchReadObjects('companies', $crmIds, $fields);\n }\n\n /**\n * Batch read multiple contacts by their CRM IDs\n *\n * @param array<string> $crmIds Array of HubSpot contact IDs (max 100)\n * @param array<string> $fields Array of property names to fetch\n *\n * @return array<string, array> Array keyed by CRM ID with contact data\n */\n public function getContactsByIds(array $crmIds, array $fields): array\n {\n return $this->batchReadObjects('contacts', $crmIds, $fields);\n }\n\n /**\n * @throws CompanyApiException\n * @throws CrmException\n */\n public function getAccountById(string $crmId, array $fields): array\n {\n try {\n $company = $this->getNewInstance()->crm()->companies()->basicApi()->getById(\n $crmId,\n implode(',', $fields),\n );\n } catch (CompanyApiException $e) {\n $this->log->info('[Hubspot] Failed to fetch account', [\n 'crm_id' => $crmId,\n 'reason' => $e->getMessage(),\n ]);\n\n throw $e;\n }\n\n if (! $company instanceof CompaniesWithAssociations) {\n throw new CrmException('Account not found');\n }\n\n return [\n 'id' => $company->getId(),\n 'properties' => $company->getProperties(),\n ];\n }\n\n /**\n * @throws ContactApiException\n * @throws CrmException\n */\n public function getContactById(string $crmId, array $fields): array\n {\n try {\n $contact = $this->getNewInstance()->crm()->contacts()->basicApi()->getById(\n $crmId,\n implode(',', $fields)\n );\n } catch (ContactApiException $e) {\n $this->log->info('[Hubspot] Failed to fetch contact', [\n 'crm_id' => $crmId,\n 'reason' => $e->getMessage(),\n ]);\n\n throw $e;\n }\n\n if (! $contact instanceof ContactsWithAssociations) {\n throw new CrmException('Contact not found');\n }\n\n return [\n 'id' => $contact->getId(),\n 'properties' => $contact->getProperties(),\n ];\n }\n\n /**\n * This is email search request that Hubspot offers as GET (more generous quota)\n */\n public function getContactByEmail(string $email, array $fields = []): array\n {\n try {\n $contact = $this->getNewInstance()->crm()->contacts()->basicApi()->getById(\n $email,\n implode(',', $fields),\n null,\n false,\n 'email'\n );\n\n return [\n 'id' => $contact->getId(),\n 'properties' => $contact->getProperties(),\n ];\n } catch (ContactApiException $e) {\n $this->log->info('[Hubspot] Failed to fetch contact', [\n 'email' => $email,\n 'reason' => $e->getMessage(),\n ]);\n\n return [];\n }\n }\n\n /**\n * @throws CrmException\n */\n public function fetchProperty(string $objectType, string $propertyId): Property\n {\n $result = $this->getNewInstance()->crm()->properties()->coreApi()->getByName($objectType, $propertyId);\n\n if (! $result instanceof Property) {\n $this->log->error('[Hubspot] Failed to fetch property', [\n 'object_type' => $objectType,\n 'property_id' => $propertyId,\n 'reason' => $result->getMessage(),\n ]);\n\n throw new CrmException('Failed to fetch property');\n }\n\n return $result;\n }\n\n /**\n * @return array<CrmFieldOption>\n */\n public function fetchPropertyOptions(string $objectType, string $propertyId): array\n {\n /** @var array<CrmFieldOption> */\n return $this->fetchProperty($objectType, $propertyId)->getOptions();\n }\n\n /**\n * @return array<array{id:string, label:string, deleted:bool}>\n */\n public function fetchCallDispositions(): array\n {\n /** @var Response $response */\n $response = $this->getInstance()->engagements()->getCallDispositions();\n\n /**\n * @var array<array{\n * id:string,\n * label:string,\n * deleted: bool\n * }>\n */\n return $response->toArray();\n }\n\n /**\n * @return array<CrmFieldOption>\n */\n public function fetchOpportunityPipelineStages(): array\n {\n $stages = [];\n $apiResponse = $this->getNewInstance()->crm()->pipelines()->pipelinesApi()->getAll('deals');\n\n if ($apiResponse instanceof Error) {\n $this->log->error('[Hubspot] Failed to fetch opportunity pipelines', [\n 'reason' => $apiResponse->getMessage(),\n ]);\n\n return [];\n }\n\n foreach ($apiResponse->getResults() as $pipeline) {\n $pipelineStages = array_map(\n static function (PipelineStage $stage) {\n return [\n 'id' => $stage->getId(),\n 'label' => $stage->getLabel(),\n ];\n },\n $pipeline->getStages()\n );\n\n $stages = array_merge($stages, $pipelineStages);\n }\n\n return $stages;\n }\n\n public function fetchOpportunityPipelines(): array\n {\n $pipelines = [];\n\n try {\n $apiResponse = $this->makeRequest('/crm/v3/pipelines/deals');\n } catch (\\Exception $e) {\n $this->log->info('[Hubspot] Failed to fetch opportunity pipelines', [\n 'reason' => $e->getMessage(),\n ]);\n\n return [];\n }\n\n $response = $apiResponse->toArray();\n\n foreach ($response['results'] as $pipeline) {\n $pipelines[] = [\n 'id' => $pipeline['id'],\n 'label' => $pipeline['label'],\n ];\n }\n\n return $pipelines;\n }\n\n /**\n * @return array<CrmFieldOption>\n */\n public function fetchMeetingOutcomeFieldOptions(Field $field): array\n {\n return $field->getCrmProviderId() === 'meetingOutcome'\n ? $this->fetchMeetingOutcomeTypes()\n : $this->fetchCallActivityTypes();\n }\n\n public function fetchMeetingOutcomeTypes(): array\n {\n return $this->extractMeetingTypeOptions(\n 'https://api.hubapi.com/crm/v3/properties/meeting/hs_meeting_outcome'\n );\n }\n\n public function fetchCallActivityTypes(): array\n {\n return $this->extractMeetingTypeOptions(\n 'https://api.hubapi.com/crm/v3/properties/call/hs_activity_type'\n );\n }\n\n private function extractMeetingTypeOptions(string $endpoint): array\n {\n /** @var Response $response */\n $response = $this->getInstance()\n ->getClient()\n ->request('GET', $endpoint);\n\n /**\n * @var array<array{\n * value: string,\n * label: string,\n * displayOrder: int\n * }> $optionData\n */\n $optionData = $response->toArray()['options'] ?? [];\n\n $options = [];\n foreach ($optionData as $item) {\n $options[] = [\n 'id' => $item['value'],\n 'value' => $item['value'],\n 'label' => $item['label'],\n 'display_order' => $item['displayOrder'],\n ];\n }\n\n return $options;\n }\n\n /**\n * @return array<CrmFieldOption>\n */\n public function fetchDispositionFieldOptions(): array\n {\n $options = [];\n\n $dispositions = $this->fetchCallDispositions();\n\n foreach ($dispositions as $disposition) {\n if ($disposition['deleted'] !== false) {\n continue;\n }\n\n $option['value'] = $disposition['id'];\n $option['id'] = $disposition['id'];\n $option['label'] = $disposition['label'];\n\n $options[] = $option;\n }\n\n return $options;\n }\n\n /**\n * @return array<CrmFieldOption>\n */\n public function fetchOpportunityFieldOptions(Field $field): array\n {\n if ($field->isStageField()) {\n return $this->fetchOpportunityPipelineStages();\n }\n\n if ($field->isPipelineField()) {\n return $this->fetchOpportunityPipelines();\n }\n\n return $this->fetchPropertyOptions('deals', $field->getCrmProviderId());\n }\n\n /**\n * @throws BadRequest\n * @throws HubspotException\n */\n public function makeRequest(string $endpoint, $method = 'GET', $payload = [], ?string $queryString = null)\n {\n $endpoint = self::BASE_URL . $endpoint;\n\n if ($method === 'GET') {\n return $this->getInstance()->getClient()?->request(\n method: $method,\n endpoint: $endpoint,\n query_string: $queryString\n );\n } else {\n return $this->getInstance()->getClient()->request($method, $endpoint, [\n 'json' => ($payload),\n ]);\n }\n }\n\n /**\n * @throws BadRequest\n * @throws HubspotException\n */\n public function createMeeting(array $payload): Response\n {\n $endpoint = '/crm/v3/objects/meetings';\n\n return $this->makeRequest($endpoint, 'POST', $payload);\n }\n\n /**\n * @throws BadRequest\n * @throws HubspotException\n */\n public function updateMeeting(string $meetingId, array $payload): Response\n {\n $endpoint = '/crm/v3/objects/meetings/' . $meetingId;\n\n return $this->makeRequest($endpoint, 'PATCH', $payload);\n }\n\n /**\n * @throws \\Exception\n */\n public function createNote(\n string $body,\n string $ownerId,\n int $timestamp,\n string $objectId,\n NoteObject $noteObject\n ): ?string {\n try {\n $noteInput = new SimplePublicObjectInput([\n 'properties' => [\n 'hs_note_body' => $body,\n 'hubspot_owner_id' => $ownerId,\n 'hs_timestamp' => $timestamp,\n ],\n ]);\n\n // Create note\n $note = $this->getNewInstance()->crm()->objects()->basicApi()->create('note', $noteInput);\n\n $this->getNewInstance()->crm()->objects()->associationsApi()->create(\n 'note',\n $note->getId(),\n $this->getNoteObject($noteObject),\n $objectId,\n $this->getNoteAssociationType($noteObject),\n );\n\n return $note->getId();\n } catch (\\Exception $e) {\n $this->log->error('[Hubspot] Failed to create note', [\n 'objectId' => $objectId,\n 'noteObject' => $noteObject->getObjectType(),\n 'reason' => $e->getMessage(),\n ]);\n\n \\Sentry::captureException($e);\n }\n\n return null;\n }\n\n public function updateEngagement(string $objectId, array $engagement, array $metadata): void\n {\n $this->getInstance()->engagements()->update($objectId, $engagement, $metadata);\n }\n\n public function getEngagementData(string $engagementId): array\n {\n $engagement = $this->getInstance()->engagements()->get($engagementId);\n\n return $engagement->toArray();\n }\n\n public function createEngagement(array $engagement, array $associations, array $metadata): Response\n {\n return $this->getInstance()\n ->engagements()\n ->create($engagement, $associations, $metadata);\n }\n\n public function isUnauthorizedException(\\Exception $e): bool\n {\n // Check for specific HubSpot API exception types first\n if ($e instanceof BadRequest) {\n // BadRequest can contain 401 status codes\n return $e->getCode() === 401;\n }\n\n // Check for HTTP client exceptions with status codes\n if ($e instanceof \\GuzzleHttp\\Exception\\RequestException && $e->hasResponse()) {\n $response = $e->getResponse();\n if ($response !== null) {\n return $response->getStatusCode() === 401;\n }\n }\n\n // Check for Guzzle HTTP exceptions\n if ($e instanceof \\GuzzleHttp\\Exception\\ClientException) {\n return $e->getCode() === 401;\n }\n\n // Fallback to string matching as last resort, but be more specific\n $message = strtolower($e->getMessage());\n\n return str_contains($message, '401 unauthorized') ||\n str_contains($message, 'http 401') ||\n str_contains($message, 'status code 401') ||\n (preg_match('/\\b401\\b/', $message) && str_contains($message, 'unauthorized'));\n }\n\n /**\n * Validates and refreshes the access token if needed before API requests.\n * This ensures long-running processes don't fail due to token expiration.\n *\n * @throws SocialAccountTokenInvalidException\n */\n public function ensureValidToken(): void\n {\n if ($this->oauthAccount === null) {\n return;\n }\n\n $newToken = $this->tokenManager->ensureValidToken($this->oauthAccount);\n if ($newToken !== null) {\n $this->accessToken = $newToken;\n }\n }\n\n public function getConfig()\n {\n return $this->config;\n }\n\n // returns only active (archived=false)\n public function getOwners(): array\n {\n return $this->getNewInstance()->crm()->owners()->getAll();\n }\n\n /**\n * @param bool $archived\n *\n * @return array<Owner>|[]\n */\n public function getOwnersArchived(bool $archived = true): array\n {\n $endpoint = '/crm/v3/owners';\n $queryParams = [\n 'archived' => $archived ? 'true' : 'false',\n ];\n $queryString = http_build_query($queryParams);\n\n $owners = [];\n\n try {\n $response = $this->makeRequest(endpoint: $endpoint, queryString: $queryString);\n $responseData = $response?->toArray();\n\n foreach ($responseData['results'] as $result) {\n try {\n $owners[] = Owner::create($result);\n } catch (Throwable $e) {\n $this->log->error('[HubSpot] Failed to process owner data', [\n 'result' => $result,\n 'error' => $e->getMessage(),\n ]);\n\n continue;\n }\n }\n } catch (Throwable $e) {\n $this->log->error('HubSpot] Failed to fetch owners', [\n 'archived' => $archived,\n 'error' => $e->getMessage(),\n ]);\n\n return [];\n }\n\n return $owners;\n }\n\n public function getMeeting(string $engagementId): ObjectWithAssociations\n {\n return $this->getNewInstance()->crm()->objects()->basicApi()\n ->getById('meeting', $engagementId, null, 'contact,company,deal');\n }\n\n public function deleteEngagement(string $engagementId): void\n {\n $this->getInstance()->engagements()->delete((int) $engagementId);\n }\n\n public function getAssociationsData(array $ids, string $fromObject, string $toObject): array\n {\n $associationData = [];\n $idChunks = array_chunk($ids, self::ASSOCIATIONS_BATCH_SIZE_LIMIT);\n\n foreach ($idChunks as $idChunk) {\n try {\n $batchInput = new \\HubSpot\\Client\\Crm\\Associations\\Model\\BatchInputPublicObjectId();\n $batchInput->setInputs(array_map(function ($id) {\n $publicObjectId = new \\HubSpot\\Client\\Crm\\Associations\\Model\\PublicObjectId();\n $publicObjectId->setId($id);\n\n return $publicObjectId;\n }, $idChunk));\n\n $associatedObjectsData = $this\n ->getNewInstance()\n ->crm()\n ->associations()\n ->batchApi()\n ->read($fromObject, $toObject, $batchInput);\n\n if ($associatedObjectsData instanceof \\HubSpot\\Client\\Crm\\Associations\\Model\\BatchResponsePublicAssociationMulti) {\n foreach ($associatedObjectsData->getResults() as $association) {\n $from = $association->getFrom()->getId();\n $toAssociations = $association->getTo();\n\n if (! empty($toAssociations)) {\n $associationData[$from] = array_map(function ($item) {\n return $item->getId();\n }, $toAssociations);\n }\n }\n }\n// } catch (RateLimitException $e) {\n// throw $e;\n } catch (\\Exception $e) {\n $this->log->error('[Hubspot] Failed to fetch associations', [\n 'from_object' => $fromObject,\n 'to_object' => $toObject,\n 'reason' => $e->getMessage(),\n ]);\n }\n }\n\n return $associationData;\n }\n\n /**\n * @throws \\Exception\n */\n private function getNoteAssociationType(NoteObject $noteObject): string\n {\n return match($noteObject) {\n NoteObject::Opportunity => 'note_to_deal',\n NoteObject::Lead, NoteObject::Contact => 'note_to_contact', // or 'note_to_lead' if your portal supports it\n NoteObject::Account => 'note_to_company',\n NoteObject::Call, NoteObject::Event => throw new \\Exception('Not supported'),\n };\n }\n\n /**\n * @throws \\Exception\n */\n private function getNoteObject(NoteObject $noteObject): string\n {\n return match($noteObject) {\n NoteObject::Opportunity => 'deal',\n NoteObject::Lead, NoteObject::Contact => 'contact',\n NoteObject::Account => 'company',\n NoteObject::Call, NoteObject::Event => throw new \\Exception('Not supported'),\n };\n }\n\n public function addAssociations(string $objectType, string $associationType, array $payload): Response\n {\n $endpoint = \"/crm/v4/associations/$objectType/$associationType/batch/create\";\n\n return $this->makeRequest($endpoint, 'POST', $payload);\n }\n\n public function removeAssociations(string $objectType, string $associationType, array $payload): Response\n {\n $endpoint = \"/crm/v4/associations/$objectType/$associationType/batch/archive\";\n\n return $this->makeRequest($endpoint, 'POST', $payload);\n }\n}","depth":4,"on_screen":true,"value":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Services\\Crm\\Hubspot;\n\nuse HubSpot\\Client\\Crm\\Deals\\ApiException as DealApiException;\nuse HubSpot\\Client\\Crm\\Contacts\\ApiException as ContactApiException;\nuse HubSpot\\Client\\Crm\\Companies\\ApiException as CompanyApiException;\nuse HubSpot\\Client\\Crm\\Contacts\\Model\\SimplePublicObjectWithAssociations as ContactsWithAssociations;\nuse HubSpot\\Client\\Crm\\Companies\\Model\\SimplePublicObjectWithAssociations as CompaniesWithAssociations;\nuse HubSpot\\Client\\Crm\\Deals\\Model\\SimplePublicObjectWithAssociations as DealWithAssociations;\nuse HubSpot\\Client\\Crm\\Objects\\Model\\SimplePublicObjectInput;\nuse HubSpot\\Client\\Crm\\Objects\\Model\\SimplePublicObjectWithAssociations as ObjectWithAssociations;\nuse HubSpot\\Client\\Crm\\Pipelines\\Model\\Error;\nuse HubSpot\\Client\\Crm\\Pipelines\\Model\\PipelineStage;\nuse HubSpot\\Client\\Crm\\Properties\\Model\\Property;\nuse HubSpot\\Discovery\\Discovery;\nuse Jiminny\\Exceptions\\CrmException;\nuse Jiminny\\Exceptions\\RateLimitException;\nuse Jiminny\\Exceptions\\SocialAccountTokenInvalidException;\nuse Jiminny\\Jobs\\Crm\\NoteObject;\nuse Jiminny\\Models\\Crm\\Field;\nuse Jiminny\\Services\\Crm\\BaseClient;\nuse Jiminny\\Services\\Crm\\Hubspot\\DTO\\Response\\Owner;\nuse Jiminny\\Services\\SocialAccountService;\nuse SevenShores\\Hubspot\\Exceptions\\BadRequest;\nuse SevenShores\\Hubspot\\Exceptions\\HubspotException;\nuse SevenShores\\Hubspot\\Factory;\nuse SevenShores\\Hubspot\\Http\\Response;\nuse Jiminny\\Services\\Crm\\Hubspot\\Pagination\\HubspotPaginationService;\nuse Illuminate\\Support\\Facades\\Redis;\nuse Throwable;\n\n/**\n * @phpstan-type CrmFieldOption array{id:string, label:string, value?:string}\n */\nclass Client extends BaseClient implements HubspotClientInterface\n{\n public const string MIN_API_VERSION = '2';\n\n public const string BASE_URL = 'https://api.hubapi.com';\n\n public const int ASSOCIATIONS_BATCH_SIZE_LIMIT = 1000;\n\n private HubspotPaginationService $paginationService;\n private HubspotTokenManager $tokenManager;\n\n public function __construct(\n SocialAccountService $socialAccountService,\n HubspotPaginationService $paginationService,\n HubspotTokenManager $tokenManager\n ) {\n parent::__construct($socialAccountService);\n $this->paginationService = $paginationService;\n $this->tokenManager = $tokenManager;\n\n $this->setBaseUrl(self::BASE_URL);\n $this->setVersion(self::MIN_API_VERSION);\n }\n\n /**\n * Reacts to a rate limits (429) from HubSpot by translating it\n * into a RateLimitException carrying retry_after.\n *\n * Wrap any outbound HubSpot call (SDK or raw HTTP) like:\n *\n * $this->executeRequest(fn () => $this->getNewInstance()->crm()->...);\n *\n * @template T\n * @param callable(): T $apiCall\n * @return T\n *\n * @throws RateLimitException\n */\n private function executeRequest(callable $apiCall)\n {\n $cacheKey = $this->getRateLimitCacheKey();\n\n $cachedRetryAfter = Redis::get($cacheKey);\n if (is_string($cachedRetryAfter) && is_numeric($cachedRetryAfter)) {\n throw new RateLimitException(\n 'Hubspot rate limit (cached circuit-breaker)',\n (int) $cachedRetryAfter,\n );\n }\n\n try {\n return $apiCall();\n } catch (Throwable $e) {\n if ($this->isHubspotRateLimit($e)) {\n $retryAfter = $this->parseRetryAfter($e);\n\n Redis::setex($cacheKey, $retryAfter, (string) $retryAfter);\n\n $this->log->warning('[Hubspot] Received 429 from API', [\n 'team_id' => $this->config->team_id,\n 'config_id' => $this->config->getId(),\n 'retry_after' => $retryAfter,\n 'reason' => $e->getMessage(),\n ]);\n\n throw new RateLimitException('Hubspot returned 429', $retryAfter, $e);\n }\n\n throw $e;\n }\n }\n\n private function getRateLimitCacheKey(): string\n {\n return sprintf('hubspot:ratelimit:portal:%d', $this->config->getId());\n }\n\n public function isHubspotRateLimit(Throwable $e): bool\n {\n if ($e instanceof BadRequest\n || $e instanceof DealApiException\n || $e instanceof ContactApiException\n || $e instanceof CompanyApiException\n || $e instanceof \\GuzzleHttp\\Exception\\RequestException\n ) {\n return (int) $e->getCode() === 429;\n }\n\n return false;\n }\n\n public function parseRetryAfter(Throwable $e): int\n {\n if (method_exists($e, 'getResponseHeaders')) {\n $headers = $e->getResponseHeaders() ?: [];\n $value = $headers['Retry-After'] ?? $headers['retry-after'] ?? null;\n if (is_array($value)) {\n $value = $value[0] ?? null;\n }\n if (is_numeric($value)) {\n return (int) $value;\n }\n }\n\n $message = strtolower($e->getMessage());\n\n if (str_contains($message, 'daily')) {\n return 600;\n }\n if (str_contains($message, 'ten secondly')) {\n return 10;\n }\n if (str_contains($message, 'secondly')) {\n return 1;\n }\n\n $this->log->warning('[Hubspot] No retry-after header or known message, using default', [\n 'exception_class' => get_class($e),\n 'message' => $message,\n ]);\n\n return 10;\n }\n\n public function parseMessage(Throwable $e): string\n {\n if (! method_exists($e, 'getResponseBody')) {\n return '';\n }\n\n $body = $e->getResponseBody();\n if (is_string($body)) {\n $body = json_decode($body, true) ?? [];\n }\n\n if (! is_array($body)) {\n return '';\n }\n\n return (string) ($body['message'] ?? '');\n }\n\n public function getMinimumApiVersion(): string\n {\n return self::MIN_API_VERSION;\n }\n\n public function getInstance(): Factory\n {\n return new Factory([\n 'key' => $this->accessToken,\n 'oauth2' => true,\n 'base_url' => $this->baseUrl,\n ]);\n }\n\n public function getNewInstance(): Discovery\n {\n return \\HubSpot\\Factory::createWithAccessToken($this->accessToken);\n }\n\n /**\n * Secondly and daily limits for Hubspot API\n *\n * Product Tier: Free & Starter | Professional & Enterprise | API add-on (any tier)\n * Burst: 100/10 seconds | 150/10 seconds | 200/10 seconds\n * Daily: 250,000 | 500,000 | 1,000,000\n *\n * Official documentation states: The search endpoints are rate limited to five requests per second.\n * Since with 5 RPS were still hitting secondly rate limits we lowered it to 4\n */\n public function getPaginatedData(array $payload, string $type, int $offset = 0): array\n {\n $total = 0;\n $lastId = null;\n $rows = [];\n foreach ($this->getPaginatedDataGenerator($payload, $type, $offset, $total, $lastId) as $row) {\n $rows[] = $row;\n }\n\n return ['results' => $rows, 'total' => $total, 'last_record' => $lastId];\n }\n\n /**\n * @throws HubspotException\n * @throws SocialAccountTokenInvalidException\n * @throws BadRequest\n */\n public function getPaginatedDataGenerator(\n array $payload,\n string $type,\n int $offset = 0,\n int &$total = 0,\n ?string &$lastRecordId = null\n ): \\Generator {\n return $this->paginationService->getPaginatedDataGenerator(\n $this,\n $payload,\n $type,\n $offset,\n $total,\n $lastRecordId\n );\n }\n\n /**\n * Execute a search request against HubSpot CRM objects with rate limiting.\n *\n * @param string $objectType The object type ('deals', 'companies', 'contacts', 'calls')\n * @param array<string, mixed> $payload The search payload with filters, sorts, properties, etc.\n * @return array The search response with 'results', 'total', 'paging' keys\n * @throws RateLimitException When rate limit is hit\n * @throws HubspotException On API errors\n */\n public function search(string $objectType, array $payload): array\n {\n $endpoint = self::BASE_URL . \"/crm/v3/objects/{$objectType}/search\";\n\n return $this->executeRequest(function () use ($endpoint, $payload) {\n $response = $this->getInstance()->getClient()->request('POST', $endpoint, ['json' => $payload]);\n\n return $response->toArray();\n });\n }\n\n /**\n * @throws DealApiException\n * @throws CrmException\n */\n public function getOpportunityById(string $crmId, array $fields): array\n {\n try {\n $deal = $this->getNewInstance()->crm()->deals()->basicApi()->getById(\n $crmId,\n implode(',', $fields),\n 'companies,contacts'\n );\n } catch (DealApiException $e) {\n $this->log->info('[Hubspot] Failed to fetch opportunity', [\n 'crm_id' => $crmId,\n 'reason' => $e->getMessage(),\n ]);\n\n throw $e;\n }\n\n if (! $deal instanceof DealWithAssociations) {\n throw new CrmException('Deal not found');\n }\n\n return [\n 'id' => $deal->getId(),\n 'properties' => $deal->getProperties(),\n 'associations' => $deal->getAssociations(),\n ];\n }\n\n /**\n * Generic batch read method for HubSpot objects\n *\n * @param string $objectType The object type ('deals', 'companies', 'contacts')\n * @param array<string> $crmIds Array of HubSpot object IDs (max 100)\n * @param array<string> $fields Array of property names to fetch\n *\n * @return array<string, array> Array keyed by CRM ID with object data\n */\n private function batchReadObjects(string $objectType, array $crmIds, array $fields): array\n {\n if (empty($crmIds)) {\n return [];\n }\n\n $this->validateBatchSize($objectType, $crmIds);\n $this->ensureValidToken();\n\n try {\n $batchConfig = $this->createBatchConfiguration($objectType);\n $batchReadRequest = $this->prepareBatchRequest($batchConfig, $crmIds, $fields);\n $response = $batchConfig['api']->read($batchReadRequest);\n\n $this->validateApiResponse($response, $objectType);\n\n $results = $this->processApiResults($response);\n $this->logBatchResults($objectType, $crmIds, $results);\n\n return $results;\n } catch (\\Throwable $e) {\n $this->handleBatchError($e, $objectType, $crmIds);\n }\n }\n\n private function validateBatchSize(string $objectType, array $crmIds): void\n {\n if (count($crmIds) > 100) {\n throw new \\InvalidArgumentException(\"Batch size cannot exceed 100 {$objectType}\");\n }\n }\n\n private function createBatchConfiguration(string $objectType): array\n {\n $configurations = [\n 'deals' => [\n 'batchReadRequest' => new \\HubSpot\\Client\\Crm\\Deals\\Model\\BatchReadInputSimplePublicObjectId(),\n 'inputClass' => \\HubSpot\\Client\\Crm\\Deals\\Model\\SimplePublicObjectId::class,\n 'api' => $this->getNewInstance()->crm()->deals()->batchApi(),\n ],\n 'companies' => [\n 'batchReadRequest' => new \\HubSpot\\Client\\Crm\\Companies\\Model\\BatchReadInputSimplePublicObjectId(),\n 'inputClass' => \\HubSpot\\Client\\Crm\\Companies\\Model\\SimplePublicObjectId::class,\n 'api' => $this->getNewInstance()->crm()->companies()->batchApi(),\n ],\n 'contacts' => [\n 'batchReadRequest' => new \\HubSpot\\Client\\Crm\\Contacts\\Model\\BatchReadInputSimplePublicObjectId(),\n 'inputClass' => \\HubSpot\\Client\\Crm\\Contacts\\Model\\SimplePublicObjectId::class,\n 'api' => $this->getNewInstance()->crm()->contacts()->batchApi(),\n ],\n ];\n\n if (! isset($configurations[$objectType])) {\n throw new \\InvalidArgumentException(\"Unsupported object type: {$objectType}\");\n }\n\n return $configurations[$objectType];\n }\n\n private function prepareBatchRequest(array $batchConfig, array $crmIds, array $fields): object\n {\n $batchReadRequest = $batchConfig['batchReadRequest'];\n $inputClass = $batchConfig['inputClass'];\n\n $inputs = array_map(function ($crmId) use ($inputClass) {\n $input = new $inputClass();\n $input->setId($crmId);\n\n return $input;\n }, $crmIds);\n\n $batchReadRequest->setInputs($inputs);\n $batchReadRequest->setProperties($fields);\n\n return $batchReadRequest;\n }\n\n private function validateApiResponse($response, string $objectType): void\n {\n if (! $response) {\n throw new CrmException(\"HubSpot API returned null response for {$objectType} batch read\");\n }\n }\n\n private function processApiResults($response): array\n {\n $results = [];\n $responseResults = $response->getResults();\n\n if ($responseResults) {\n foreach ($responseResults as $object) {\n if ($object && $object->getId()) {\n $results[$object->getId()] = [\n 'id' => $object->getId(),\n 'properties' => $object->getProperties() ?: [],\n ];\n }\n }\n }\n\n return $results;\n }\n\n private function logBatchResults(string $objectType, array $crmIds, array $results): void\n {\n $this->log->info(\"[HubSpot] Batch fetched {$objectType}\", [\n 'requested_count' => count($crmIds),\n 'returned_count' => count($results),\n 'crm_ids' => $crmIds,\n ]);\n }\n\n private function handleBatchError(\\Throwable $e, string $objectType, array $crmIds): void\n {\n $errorMessage = $e->getMessage() ?: 'Unknown error';\n $errorTrace = $e->getTraceAsString() ?: 'No trace available';\n\n $this->log->error(\"[HubSpot] Failed to batch fetch {$objectType}\", [\n 'crm_ids' => $crmIds,\n 'error' => $errorMessage,\n 'trace' => $errorTrace,\n ]);\n\n throw new CrmException(\"Failed to batch fetch {$objectType}: \" . $errorMessage);\n }\n\n /**\n * Batch read multiple opportunities by their CRM IDs\n *\n * @param array<string> $crmIds Array of HubSpot deal IDs (max 100)\n * @param array<string> $fields Array of property names to fetch\n *\n * @return array<string, array> Array keyed by CRM ID with opportunity data\n */\n public function getOpportunitiesByIds(array $crmIds, array $fields): array\n {\n return $this->batchReadObjects('deals', $crmIds, $fields);\n }\n\n /**\n * Batch read multiple companies by their CRM IDs\n *\n * @param array<string> $crmIds Array of HubSpot company IDs (max 100)\n * @param array<string> $fields Array of property names to fetch\n *\n * @return array<string, array> Array keyed by CRM ID with company data\n */\n public function getCompaniesByIds(array $crmIds, array $fields): array\n {\n return $this->batchReadObjects('companies', $crmIds, $fields);\n }\n\n /**\n * Batch read multiple contacts by their CRM IDs\n *\n * @param array<string> $crmIds Array of HubSpot contact IDs (max 100)\n * @param array<string> $fields Array of property names to fetch\n *\n * @return array<string, array> Array keyed by CRM ID with contact data\n */\n public function getContactsByIds(array $crmIds, array $fields): array\n {\n return $this->batchReadObjects('contacts', $crmIds, $fields);\n }\n\n /**\n * @throws CompanyApiException\n * @throws CrmException\n */\n public function getAccountById(string $crmId, array $fields): array\n {\n try {\n $company = $this->getNewInstance()->crm()->companies()->basicApi()->getById(\n $crmId,\n implode(',', $fields),\n );\n } catch (CompanyApiException $e) {\n $this->log->info('[Hubspot] Failed to fetch account', [\n 'crm_id' => $crmId,\n 'reason' => $e->getMessage(),\n ]);\n\n throw $e;\n }\n\n if (! $company instanceof CompaniesWithAssociations) {\n throw new CrmException('Account not found');\n }\n\n return [\n 'id' => $company->getId(),\n 'properties' => $company->getProperties(),\n ];\n }\n\n /**\n * @throws ContactApiException\n * @throws CrmException\n */\n public function getContactById(string $crmId, array $fields): array\n {\n try {\n $contact = $this->getNewInstance()->crm()->contacts()->basicApi()->getById(\n $crmId,\n implode(',', $fields)\n );\n } catch (ContactApiException $e) {\n $this->log->info('[Hubspot] Failed to fetch contact', [\n 'crm_id' => $crmId,\n 'reason' => $e->getMessage(),\n ]);\n\n throw $e;\n }\n\n if (! $contact instanceof ContactsWithAssociations) {\n throw new CrmException('Contact not found');\n }\n\n return [\n 'id' => $contact->getId(),\n 'properties' => $contact->getProperties(),\n ];\n }\n\n /**\n * This is email search request that Hubspot offers as GET (more generous quota)\n */\n public function getContactByEmail(string $email, array $fields = []): array\n {\n try {\n $contact = $this->getNewInstance()->crm()->contacts()->basicApi()->getById(\n $email,\n implode(',', $fields),\n null,\n false,\n 'email'\n );\n\n return [\n 'id' => $contact->getId(),\n 'properties' => $contact->getProperties(),\n ];\n } catch (ContactApiException $e) {\n $this->log->info('[Hubspot] Failed to fetch contact', [\n 'email' => $email,\n 'reason' => $e->getMessage(),\n ]);\n\n return [];\n }\n }\n\n /**\n * @throws CrmException\n */\n public function fetchProperty(string $objectType, string $propertyId): Property\n {\n $result = $this->getNewInstance()->crm()->properties()->coreApi()->getByName($objectType, $propertyId);\n\n if (! $result instanceof Property) {\n $this->log->error('[Hubspot] Failed to fetch property', [\n 'object_type' => $objectType,\n 'property_id' => $propertyId,\n 'reason' => $result->getMessage(),\n ]);\n\n throw new CrmException('Failed to fetch property');\n }\n\n return $result;\n }\n\n /**\n * @return array<CrmFieldOption>\n */\n public function fetchPropertyOptions(string $objectType, string $propertyId): array\n {\n /** @var array<CrmFieldOption> */\n return $this->fetchProperty($objectType, $propertyId)->getOptions();\n }\n\n /**\n * @return array<array{id:string, label:string, deleted:bool}>\n */\n public function fetchCallDispositions(): array\n {\n /** @var Response $response */\n $response = $this->getInstance()->engagements()->getCallDispositions();\n\n /**\n * @var array<array{\n * id:string,\n * label:string,\n * deleted: bool\n * }>\n */\n return $response->toArray();\n }\n\n /**\n * @return array<CrmFieldOption>\n */\n public function fetchOpportunityPipelineStages(): array\n {\n $stages = [];\n $apiResponse = $this->getNewInstance()->crm()->pipelines()->pipelinesApi()->getAll('deals');\n\n if ($apiResponse instanceof Error) {\n $this->log->error('[Hubspot] Failed to fetch opportunity pipelines', [\n 'reason' => $apiResponse->getMessage(),\n ]);\n\n return [];\n }\n\n foreach ($apiResponse->getResults() as $pipeline) {\n $pipelineStages = array_map(\n static function (PipelineStage $stage) {\n return [\n 'id' => $stage->getId(),\n 'label' => $stage->getLabel(),\n ];\n },\n $pipeline->getStages()\n );\n\n $stages = array_merge($stages, $pipelineStages);\n }\n\n return $stages;\n }\n\n public function fetchOpportunityPipelines(): array\n {\n $pipelines = [];\n\n try {\n $apiResponse = $this->makeRequest('/crm/v3/pipelines/deals');\n } catch (\\Exception $e) {\n $this->log->info('[Hubspot] Failed to fetch opportunity pipelines', [\n 'reason' => $e->getMessage(),\n ]);\n\n return [];\n }\n\n $response = $apiResponse->toArray();\n\n foreach ($response['results'] as $pipeline) {\n $pipelines[] = [\n 'id' => $pipeline['id'],\n 'label' => $pipeline['label'],\n ];\n }\n\n return $pipelines;\n }\n\n /**\n * @return array<CrmFieldOption>\n */\n public function fetchMeetingOutcomeFieldOptions(Field $field): array\n {\n return $field->getCrmProviderId() === 'meetingOutcome'\n ? $this->fetchMeetingOutcomeTypes()\n : $this->fetchCallActivityTypes();\n }\n\n public function fetchMeetingOutcomeTypes(): array\n {\n return $this->extractMeetingTypeOptions(\n 'https://api.hubapi.com/crm/v3/properties/meeting/hs_meeting_outcome'\n );\n }\n\n public function fetchCallActivityTypes(): array\n {\n return $this->extractMeetingTypeOptions(\n 'https://api.hubapi.com/crm/v3/properties/call/hs_activity_type'\n );\n }\n\n private function extractMeetingTypeOptions(string $endpoint): array\n {\n /** @var Response $response */\n $response = $this->getInstance()\n ->getClient()\n ->request('GET', $endpoint);\n\n /**\n * @var array<array{\n * value: string,\n * label: string,\n * displayOrder: int\n * }> $optionData\n */\n $optionData = $response->toArray()['options'] ?? [];\n\n $options = [];\n foreach ($optionData as $item) {\n $options[] = [\n 'id' => $item['value'],\n 'value' => $item['value'],\n 'label' => $item['label'],\n 'display_order' => $item['displayOrder'],\n ];\n }\n\n return $options;\n }\n\n /**\n * @return array<CrmFieldOption>\n */\n public function fetchDispositionFieldOptions(): array\n {\n $options = [];\n\n $dispositions = $this->fetchCallDispositions();\n\n foreach ($dispositions as $disposition) {\n if ($disposition['deleted'] !== false) {\n continue;\n }\n\n $option['value'] = $disposition['id'];\n $option['id'] = $disposition['id'];\n $option['label'] = $disposition['label'];\n\n $options[] = $option;\n }\n\n return $options;\n }\n\n /**\n * @return array<CrmFieldOption>\n */\n public function fetchOpportunityFieldOptions(Field $field): array\n {\n if ($field->isStageField()) {\n return $this->fetchOpportunityPipelineStages();\n }\n\n if ($field->isPipelineField()) {\n return $this->fetchOpportunityPipelines();\n }\n\n return $this->fetchPropertyOptions('deals', $field->getCrmProviderId());\n }\n\n /**\n * @throws BadRequest\n * @throws HubspotException\n */\n public function makeRequest(string $endpoint, $method = 'GET', $payload = [], ?string $queryString = null)\n {\n $endpoint = self::BASE_URL . $endpoint;\n\n if ($method === 'GET') {\n return $this->getInstance()->getClient()?->request(\n method: $method,\n endpoint: $endpoint,\n query_string: $queryString\n );\n } else {\n return $this->getInstance()->getClient()->request($method, $endpoint, [\n 'json' => ($payload),\n ]);\n }\n }\n\n /**\n * @throws BadRequest\n * @throws HubspotException\n */\n public function createMeeting(array $payload): Response\n {\n $endpoint = '/crm/v3/objects/meetings';\n\n return $this->makeRequest($endpoint, 'POST', $payload);\n }\n\n /**\n * @throws BadRequest\n * @throws HubspotException\n */\n public function updateMeeting(string $meetingId, array $payload): Response\n {\n $endpoint = '/crm/v3/objects/meetings/' . $meetingId;\n\n return $this->makeRequest($endpoint, 'PATCH', $payload);\n }\n\n /**\n * @throws \\Exception\n */\n public function createNote(\n string $body,\n string $ownerId,\n int $timestamp,\n string $objectId,\n NoteObject $noteObject\n ): ?string {\n try {\n $noteInput = new SimplePublicObjectInput([\n 'properties' => [\n 'hs_note_body' => $body,\n 'hubspot_owner_id' => $ownerId,\n 'hs_timestamp' => $timestamp,\n ],\n ]);\n\n // Create note\n $note = $this->getNewInstance()->crm()->objects()->basicApi()->create('note', $noteInput);\n\n $this->getNewInstance()->crm()->objects()->associationsApi()->create(\n 'note',\n $note->getId(),\n $this->getNoteObject($noteObject),\n $objectId,\n $this->getNoteAssociationType($noteObject),\n );\n\n return $note->getId();\n } catch (\\Exception $e) {\n $this->log->error('[Hubspot] Failed to create note', [\n 'objectId' => $objectId,\n 'noteObject' => $noteObject->getObjectType(),\n 'reason' => $e->getMessage(),\n ]);\n\n \\Sentry::captureException($e);\n }\n\n return null;\n }\n\n public function updateEngagement(string $objectId, array $engagement, array $metadata): void\n {\n $this->getInstance()->engagements()->update($objectId, $engagement, $metadata);\n }\n\n public function getEngagementData(string $engagementId): array\n {\n $engagement = $this->getInstance()->engagements()->get($engagementId);\n\n return $engagement->toArray();\n }\n\n public function createEngagement(array $engagement, array $associations, array $metadata): Response\n {\n return $this->getInstance()\n ->engagements()\n ->create($engagement, $associations, $metadata);\n }\n\n public function isUnauthorizedException(\\Exception $e): bool\n {\n // Check for specific HubSpot API exception types first\n if ($e instanceof BadRequest) {\n // BadRequest can contain 401 status codes\n return $e->getCode() === 401;\n }\n\n // Check for HTTP client exceptions with status codes\n if ($e instanceof \\GuzzleHttp\\Exception\\RequestException && $e->hasResponse()) {\n $response = $e->getResponse();\n if ($response !== null) {\n return $response->getStatusCode() === 401;\n }\n }\n\n // Check for Guzzle HTTP exceptions\n if ($e instanceof \\GuzzleHttp\\Exception\\ClientException) {\n return $e->getCode() === 401;\n }\n\n // Fallback to string matching as last resort, but be more specific\n $message = strtolower($e->getMessage());\n\n return str_contains($message, '401 unauthorized') ||\n str_contains($message, 'http 401') ||\n str_contains($message, 'status code 401') ||\n (preg_match('/\\b401\\b/', $message) && str_contains($message, 'unauthorized'));\n }\n\n /**\n * Validates and refreshes the access token if needed before API requests.\n * This ensures long-running processes don't fail due to token expiration.\n *\n * @throws SocialAccountTokenInvalidException\n */\n public function ensureValidToken(): void\n {\n if ($this->oauthAccount === null) {\n return;\n }\n\n $newToken = $this->tokenManager->ensureValidToken($this->oauthAccount);\n if ($newToken !== null) {\n $this->accessToken = $newToken;\n }\n }\n\n public function getConfig()\n {\n return $this->config;\n }\n\n // returns only active (archived=false)\n public function getOwners(): array\n {\n return $this->getNewInstance()->crm()->owners()->getAll();\n }\n\n /**\n * @param bool $archived\n *\n * @return array<Owner>|[]\n */\n public function getOwnersArchived(bool $archived = true): array\n {\n $endpoint = '/crm/v3/owners';\n $queryParams = [\n 'archived' => $archived ? 'true' : 'false',\n ];\n $queryString = http_build_query($queryParams);\n\n $owners = [];\n\n try {\n $response = $this->makeRequest(endpoint: $endpoint, queryString: $queryString);\n $responseData = $response?->toArray();\n\n foreach ($responseData['results'] as $result) {\n try {\n $owners[] = Owner::create($result);\n } catch (Throwable $e) {\n $this->log->error('[HubSpot] Failed to process owner data', [\n 'result' => $result,\n 'error' => $e->getMessage(),\n ]);\n\n continue;\n }\n }\n } catch (Throwable $e) {\n $this->log->error('HubSpot] Failed to fetch owners', [\n 'archived' => $archived,\n 'error' => $e->getMessage(),\n ]);\n\n return [];\n }\n\n return $owners;\n }\n\n public function getMeeting(string $engagementId): ObjectWithAssociations\n {\n return $this->getNewInstance()->crm()->objects()->basicApi()\n ->getById('meeting', $engagementId, null, 'contact,company,deal');\n }\n\n public function deleteEngagement(string $engagementId): void\n {\n $this->getInstance()->engagements()->delete((int) $engagementId);\n }\n\n public function getAssociationsData(array $ids, string $fromObject, string $toObject): array\n {\n $associationData = [];\n $idChunks = array_chunk($ids, self::ASSOCIATIONS_BATCH_SIZE_LIMIT);\n\n foreach ($idChunks as $idChunk) {\n try {\n $batchInput = new \\HubSpot\\Client\\Crm\\Associations\\Model\\BatchInputPublicObjectId();\n $batchInput->setInputs(array_map(function ($id) {\n $publicObjectId = new \\HubSpot\\Client\\Crm\\Associations\\Model\\PublicObjectId();\n $publicObjectId->setId($id);\n\n return $publicObjectId;\n }, $idChunk));\n\n $associatedObjectsData = $this\n ->getNewInstance()\n ->crm()\n ->associations()\n ->batchApi()\n ->read($fromObject, $toObject, $batchInput);\n\n if ($associatedObjectsData instanceof \\HubSpot\\Client\\Crm\\Associations\\Model\\BatchResponsePublicAssociationMulti) {\n foreach ($associatedObjectsData->getResults() as $association) {\n $from = $association->getFrom()->getId();\n $toAssociations = $association->getTo();\n\n if (! empty($toAssociations)) {\n $associationData[$from] = array_map(function ($item) {\n return $item->getId();\n }, $toAssociations);\n }\n }\n }\n// } catch (RateLimitException $e) {\n// throw $e;\n } catch (\\Exception $e) {\n $this->log->error('[Hubspot] Failed to fetch associations', [\n 'from_object' => $fromObject,\n 'to_object' => $toObject,\n 'reason' => $e->getMessage(),\n ]);\n }\n }\n\n return $associationData;\n }\n\n /**\n * @throws \\Exception\n */\n private function getNoteAssociationType(NoteObject $noteObject): string\n {\n return match($noteObject) {\n NoteObject::Opportunity => 'note_to_deal',\n NoteObject::Lead, NoteObject::Contact => 'note_to_contact', // or 'note_to_lead' if your portal supports it\n NoteObject::Account => 'note_to_company',\n NoteObject::Call, NoteObject::Event => throw new \\Exception('Not supported'),\n };\n }\n\n /**\n * @throws \\Exception\n */\n private function getNoteObject(NoteObject $noteObject): string\n {\n return match($noteObject) {\n NoteObject::Opportunity => 'deal',\n NoteObject::Lead, NoteObject::Contact => 'contact',\n NoteObject::Account => 'company',\n NoteObject::Call, NoteObject::Event => throw new \\Exception('Not supported'),\n };\n }\n\n public function addAssociations(string $objectType, string $associationType, array $payload): Response\n {\n $endpoint = \"/crm/v4/associations/$objectType/$associationType/batch/create\";\n\n return $this->makeRequest($endpoint, 'POST', $payload);\n }\n\n public function removeAssociations(string $objectType, string $associationType, array $payload): Response\n {\n $endpoint = \"/crm/v4/associations/$objectType/$associationType/batch/archive\";\n\n return $this->makeRequest($endpoint, 'POST', $payload);\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Show Replace Field","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Search History","depth":3,"on_screen":true,"role_description":"checkbox","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"429","depth":4,"on_screen":true,"value":"429","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"New Line","depth":3,"on_screen":true,"role_description":"checkbox","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Match Case","depth":3,"on_screen":true,"role_description":"checkbox","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Words","depth":3,"on_screen":true,"role_description":"checkbox","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Regex","depth":3,"on_screen":true,"role_description":"checkbox","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Replace History","depth":3,"bounds":{"left":0.0,"top":0.0,"width":0.015277778,"height":0.024444444},"on_screen":false,"role_description":"checkbox","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextField","text":"Replace","depth":4,"on_screen":false,"role_description":"text field","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
2702169155189722820
|
6378759348926941284
|
click
|
accessibility
|
NULL
|
Project: faVsco.js, menu
JY-20725-handle-HS-search Project: faVsco.js, menu
JY-20725-handle-HS-search-rate-limit, menu
Start Listening for PHP Debug Connections
HandleHubspotRateLimitTest
Run 'HandleHubspotRateLimitTest'
Debug 'HandleHubspotRateLimitTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
2
67
3
Previous Highlighted Error
Next Highlighted Error
<?php
declare(strict_types=1);
namespace Jiminny\Services\Crm\Hubspot;
use HubSpot\Client\Crm\Deals\ApiException as DealApiException;
use HubSpot\Client\Crm\Contacts\ApiException as ContactApiException;
use HubSpot\Client\Crm\Companies\ApiException as CompanyApiException;
use HubSpot\Client\Crm\Contacts\Model\SimplePublicObjectWithAssociations as ContactsWithAssociations;
use HubSpot\Client\Crm\Companies\Model\SimplePublicObjectWithAssociations as CompaniesWithAssociations;
use HubSpot\Client\Crm\Deals\Model\SimplePublicObjectWithAssociations as DealWithAssociations;
use HubSpot\Client\Crm\Objects\Model\SimplePublicObjectInput;
use HubSpot\Client\Crm\Objects\Model\SimplePublicObjectWithAssociations as ObjectWithAssociations;
use HubSpot\Client\Crm\Pipelines\Model\Error;
use HubSpot\Client\Crm\Pipelines\Model\PipelineStage;
use HubSpot\Client\Crm\Properties\Model\Property;
use HubSpot\Discovery\Discovery;
use Jiminny\Exceptions\CrmException;
use Jiminny\Exceptions\RateLimitException;
use Jiminny\Exceptions\SocialAccountTokenInvalidException;
use Jiminny\Jobs\Crm\NoteObject;
use Jiminny\Models\Crm\Field;
use Jiminny\Services\Crm\BaseClient;
use Jiminny\Services\Crm\Hubspot\DTO\Response\Owner;
use Jiminny\Services\SocialAccountService;
use SevenShores\Hubspot\Exceptions\BadRequest;
use SevenShores\Hubspot\Exceptions\HubspotException;
use SevenShores\Hubspot\Factory;
use SevenShores\Hubspot\Http\Response;
use Jiminny\Services\Crm\Hubspot\Pagination\HubspotPaginationService;
use Illuminate\Support\Facades\Redis;
use Throwable;
/**
* @phpstan-type CrmFieldOption array{id:string, label:string, value?:string}
*/
class Client extends BaseClient implements HubspotClientInterface
{
public const string MIN_API_VERSION = '2';
public const string BASE_URL = '[URL_WITH_CREDENTIALS] T
* @param callable(): T $apiCall
* @return T
*
* @throws RateLimitException
*/
private function executeRequest(callable $apiCall)
{
$cacheKey = $this->getRateLimitCacheKey();
$cachedRetryAfter = Redis::get($cacheKey);
if (is_string($cachedRetryAfter) && is_numeric($cachedRetryAfter)) {
throw new RateLimitException(
'Hubspot rate limit (cached circuit-breaker)',
(int) $cachedRetryAfter,
);
}
try {
return $apiCall();
} catch (Throwable $e) {
if ($this->isHubspotRateLimit($e)) {
$retryAfter = $this->parseRetryAfter($e);
Redis::setex($cacheKey, $retryAfter, (string) $retryAfter);
$this->log->warning('[Hubspot] Received 429 from API', [
'team_id' => $this->config->team_id,
'config_id' => $this->config->getId(),
'retry_after' => $retryAfter,
'reason' => $e->getMessage(),
]);
throw new RateLimitException('Hubspot returned 429', $retryAfter, $e);
}
throw $e;
}
}
private function getRateLimitCacheKey(): string
{
return sprintf('hubspot:ratelimit:portal:%d', $this->config->getId());
}
public function isHubspotRateLimit(Throwable $e): bool
{
if ($e instanceof BadRequest
|| $e instanceof DealApiException
|| $e instanceof ContactApiException
|| $e instanceof CompanyApiException
|| $e instanceof \GuzzleHttp\Exception\RequestException
) {
return (int) $e->getCode() === 429;
}
return false;
}
public function parseRetryAfter(Throwable $e): int
{
if (method_exists($e, 'getResponseHeaders')) {
$headers = $e->getResponseHeaders() ?: [];
$value = $headers['Retry-After'] ?? $headers['retry-after'] ?? null;
if (is_array($value)) {
$value = $value[0] ?? null;
}
if (is_numeric($value)) {
return (int) $value;
}
}
$message = strtolower($e->getMessage());
if (str_contains($message, 'daily')) {
return 600;
}
if (str_contains($message, 'ten secondly')) {
return 10;
}
if (str_contains($message, 'secondly')) {
return 1;
}
$this->log->warning('[Hubspot] No retry-after header or known message, using default', [
'exception_class' => get_class($e),
'message' => $message,
]);
return 10;
}
public function parseMessage(Throwable $e): string
{
if (! method_exists($e, 'getResponseBody')) {
return '';
}
$body = $e->getResponseBody();
if (is_string($body)) {
$body = json_decode($body, true) ?? [];
}
if (! is_array($body)) {
return '';
}
return (string) ($body['message'] ?? '');
}
public function getMinimumApiVersion(): string
{
return self::MIN_API_VERSION;
}
public function getInstance(): Factory
{
return new Factory([
'key' => $this->accessToken,
'oauth2' => true,
'base_url' => $this->baseUrl,
]);
}
public function getNewInstance(): Discovery
{
return \HubSpot\Factory::createWithAccessToken($this->accessToken);
}
/**
* Secondly and daily limits for Hubspot API
*
* Product Tier: Free & Starter | Professional & Enterprise | API add-on (any tier)
* Burst: 100/10 seconds | 150/10 seconds | 200/10 seconds
* Daily: 250,000 | 500,000 | 1,000,000
*
* Official documentation states: The search endpoints are rate limited to five requests per second.
* Since with 5 RPS were still hitting secondly rate limits we lowered it to 4
*/
public function getPaginatedData(array $payload, string $type, int $offset = 0): array
{
$total = 0;
$lastId = null;
$rows = [];
foreach ($this->getPaginatedDataGenerator($payload, $type, $offset, $total, $lastId) as $row) {
$rows[] = $row;
}
return ['results' => $rows, 'total' => $total, 'last_record' => $lastId];
}
/**
* @throws HubspotException
* @throws SocialAccountTokenInvalidException
* @throws BadRequest
*/
public function getPaginatedDataGenerator(
array $payload,
string $type,
int $offset = 0,
int &$total = 0,
?string &$lastRecordId = null
): \Generator {
return $this->paginationService->getPaginatedDataGenerator(
$this,
$payload,
$type,
$offset,
$total,
$lastRecordId
);
}
/**
* Execute a search request against HubSpot CRM objects with rate limiting.
*
* @param string $objectType The object type ('deals', 'companies', 'contacts', 'calls')
* @param array<string, mixed> $payload The search payload with filters, sorts, properties, etc.
* @return array The search response with 'results', 'total', 'paging' keys
* @throws RateLimitException When rate limit is hit
* @throws HubspotException On API errors
*/
public function search(string $objectType, array $payload): array
{
$endpoint = self::BASE_URL . "/crm/v3/objects/{$objectType}/search";
return $this->executeRequest(function () use ($endpoint, $payload) {
$response = $this->getInstance()->getClient()->request('POST', $endpoint, ['json' => $payload]);
return $response->toArray();
});
}
/**
* @throws DealApiException
* @throws CrmException
*/
public function getOpportunityById(string $crmId, array $fields): array
{
try {
$deal = $this->getNewInstance()->crm()->deals()->basicApi()->getById(
$crmId,
implode(',', $fields),
'companies,contacts'
);
} catch (DealApiException $e) {
$this->log->info('[Hubspot] Failed to fetch opportunity', [
'crm_id' => $crmId,
'reason' => $e->getMessage(),
]);
throw $e;
}
if (! $deal instanceof DealWithAssociations) {
throw new CrmException('Deal not found');
}
return [
'id' => $deal->getId(),
'properties' => $deal->getProperties(),
'associations' => $deal->getAssociations(),
];
}
/**
* Generic batch read method for HubSpot objects
*
* @param string $objectType The object type ('deals', 'companies', 'contacts')
* @param array<string> $crmIds Array of HubSpot object IDs (max 100)
* @param array<string> $fields Array of property names to fetch
*
* @return array<string, array> Array keyed by CRM ID with object data
*/
private function batchReadObjects(string $objectType, array $crmIds, array $fields): array
{
if (empty($crmIds)) {
return [];
}
$this->validateBatchSize($objectType, $crmIds);
$this->ensureValidToken();
try {
$batchConfig = $this->createBatchConfiguration($objectType);
$batchReadRequest = $this->prepareBatchRequest($batchConfig, $crmIds, $fields);
$response = $batchConfig['api']->read($batchReadRequest);
$this->validateApiResponse($response, $objectType);
$results = $this->processApiResults($response);
$this->logBatchResults($objectType, $crmIds, $results);
return $results;
} catch (\Throwable $e) {
$this->handleBatchError($e, $objectType, $crmIds);
}
}
private function validateBatchSize(string $objectType, array $crmIds): void
{
if (count($crmIds) > 100) {
throw new \InvalidArgumentException("Batch size cannot exceed 100 {$objectType}");
}
}
private function createBatchConfiguration(string $objectType): array
{
$configurations = [
'deals' => [
'batchReadRequest' => new \HubSpot\Client\Crm\Deals\Model\BatchReadInputSimplePublicObjectId(),
'inputClass' => \HubSpot\Client\Crm\Deals\Model\SimplePublicObjectId::class,
'api' => $this->getNewInstance()->crm()->deals()->batchApi(),
],
'companies' => [
'batchReadRequest' => new \HubSpot\Client\Crm\Companies\Model\BatchReadInputSimplePublicObjectId(),
'inputClass' => \HubSpot\Client\Crm\Companies\Model\SimplePublicObjectId::class,
'api' => $this->getNewInstance()->crm()->companies()->batchApi(),
],
'contacts' => [
'batchReadRequest' => new \HubSpot\Client\Crm\Contacts\Model\BatchReadInputSimplePublicObjectId(),
'inputClass' => \HubSpot\Client\Crm\Contacts\Model\SimplePublicObjectId::class,
'api' => $this->getNewInstance()->crm()->contacts()->batchApi(),
],
];
if (! isset($configurations[$objectType])) {
throw new \InvalidArgumentException("Unsupported object type: {$objectType}");
}
return $configurations[$objectType];
}
private function prepareBatchRequest(array $batchConfig, array $crmIds, array $fields): object
{
$batchReadRequest = $batchConfig['batchReadRequest'];
$inputClass = $batchConfig['inputClass'];
$inputs = array_map(function ($crmId) use ($inputClass) {
$input = new $inputClass();
$input->setId($crmId);
return $input;
}, $crmIds);
$batchReadRequest->setInputs($inputs);
$batchReadRequest->setProperties($fields);
return $batchReadRequest;
}
private function validateApiResponse($response, string $objectType): void
{
if (! $response) {
throw new CrmException("HubSpot API returned null response for {$objectType} batch read");
}
}
private function processApiResults($response): array
{
$results = [];
$responseResults = $response->getResults();
if ($responseResults) {
foreach ($responseResults as $object) {
if ($object && $object->getId()) {
$results[$object->getId()] = [
'id' => $object->getId(),
'properties' => $object->getProperties() ?: [],
];
}
}
}
return $results;
}
private function logBatchResults(string $objectType, array $crmIds, array $results): void
{
$this->log->info("[HubSpot] Batch fetched {$objectType}", [
'requested_count' => count($crmIds),
'returned_count' => count($results),
'crm_ids' => $crmIds,
]);
}
private function handleBatchError(\Throwable $e, string $objectType, array $crmIds): void
{
$errorMessage = $e->getMessage() ?: 'Unknown error';
$errorTrace = $e->getTraceAsString() ?: 'No trace available';
$this->log->error("[HubSpot] Failed to batch fetch {$objectType}", [
'crm_ids' => $crmIds,
'error' => $errorMessage,
'trace' => $errorTrace,
]);
throw new CrmException("Failed to batch fetch {$objectType}: " . $errorMessage);
}
/**
* Batch read multiple opportunities by their CRM IDs
*
* @param array<string> $crmIds Array of HubSpot deal IDs (max 100)
* @param array<string> $fields Array of property names to fetch
*
* @return array<string, array> Array keyed by CRM ID with opportunity data
*/
public function getOpportunitiesByIds(array $crmIds, array $fields): array
{
return $this->batchReadObjects('deals', $crmIds, $fields);
}
/**
* Batch read multiple companies by their CRM IDs
*
* @param array<string> $crmIds Array of HubSpot company IDs (max 100)
* @param array<string> $fields Array of property names to fetch
*
* @return array<string, array> Array keyed by CRM ID with company data
*/
public function getCompaniesByIds(array $crmIds, array $fields): array
{
return $this->batchReadObjects('companies', $crmIds, $fields);
}
/**
* Batch read multiple contacts by their CRM IDs
*
* @param array<string> $crmIds Array of HubSpot contact IDs (max 100)
* @param array<string> $fields Array of property names to fetch
*
* @return array<string, array> Array keyed by CRM ID with contact data
*/
public function getContactsByIds(array $crmIds, array $fields): array
{
return $this->batchReadObjects('contacts', $crmIds, $fields);
}
/**
* @throws CompanyApiException
* @throws CrmException
*/
public function getAccountById(string $crmId, array $fields): array
{
try {
$company = $this->getNewInstance()->crm()->companies()->basicApi()->getById(
$crmId,
implode(',', $fields),
);
} catch (CompanyApiException $e) {
$this->log->info('[Hubspot] Failed to fetch account', [
'crm_id' => $crmId,
'reason' => $e->getMessage(),
]);
throw $e;
}
if (! $company instanceof CompaniesWithAssociations) {
throw new CrmException('Account not found');
}
return [
'id' => $company->getId(),
'properties' => $company->getProperties(),
];
}
/**
* @throws ContactApiException
* @throws CrmException
*/
public function getContactById(string $crmId, array $fields): array
{
try {
$contact = $this->getNewInstance()->crm()->contacts()->basicApi()->getById(
$crmId,
implode(',', $fields)
);
} catch (ContactApiException $e) {
$this->log->info('[Hubspot] Failed to fetch contact', [
'crm_id' => $crmId,
'reason' => $e->getMessage(),
]);
throw $e;
}
if (! $contact instanceof ContactsWithAssociations) {
throw new CrmException('Contact not found');
}
return [
'id' => $contact->getId(),
'properties' => $contact->getProperties(),
];
}
/**
* This is email search request that Hubspot offers as GET (more generous quota)
*/
public function getContactByEmail(string $email, array $fields = []): array
{
try {
$contact = $this->getNewInstance()->crm()->contacts()->basicApi()->getById(
$email,
implode(',', $fields),
null,
false,
'email'
);
return [
'id' => $contact->getId(),
'properties' => $contact->getProperties(),
];
} catch (ContactApiException $e) {
$this->log->info('[Hubspot] Failed to fetch contact', [
'email' => $email,
'reason' => $e->getMessage(),
]);
return [];
}
}
/**
* @throws CrmException
*/
public function fetchProperty(string $objectType, string $propertyId): Property
{
$result = $this->getNewInstance()->crm()->properties()->coreApi()->getByName($objectType, $propertyId);
if (! $result instanceof Property) {
$this->log->error('[Hubspot] Failed to fetch property', [
'object_type' => $objectType,
'property_id' => $propertyId,
'reason' => $result->getMessage(),
]);
throw new CrmException('Failed to fetch property');
}
return $result;
}
/**
* @return array<CrmFieldOption>
*/
public function fetchPropertyOptions(string $objectType, string $propertyId): array
{
/** @var array<CrmFieldOption> */
return $this->fetchProperty($objectType, $propertyId)->getOptions();
}
/**
* @return array<array{id:string, label:string, deleted:bool}>
*/
public function fetchCallDispositions(): array
{
/** @var Response $response */
$response = $this->getInstance()->engagements()->getCallDispositions();
/**
* @var array<array{
* id:string,
* label:string,
* deleted: bool
* }>
*/
return $response->toArray();
}
/**
* @return array<CrmFieldOption>
*/
public function fetchOpportunityPipelineStages(): array
{
$stages = [];
$apiResponse = $this->getNewInstance()->crm()->pipelines()->pipelinesApi()->getAll('deals');
if ($apiResponse instanceof Error) {
$this->log->error('[Hubspot] Failed to fetch opportunity pipelines', [
'reason' => $apiResponse->getMessage(),
]);
return [];
}
foreach ($apiResponse->getResults() as $pipeline) {
$pipelineStages = array_map(
static function (PipelineStage $stage) {
return [
'id' => $stage->getId(),
'label' => $stage->getLabel(),
];
},
$pipeline->getStages()
);
$stages = array_merge($stages, $pipelineStages);
}
return $stages;
}
public function fetchOpportunityPipelines(): array
{
$pipelines = [];
try {
$apiResponse = $this->makeRequest('/crm/v3/pipelines/deals');
} catch (\Exception $e) {
$this->log->info('[Hubspot] Failed to fetch opportunity pipelines', [
'reason' => $e->getMessage(),
]);
return [];
}
$response = $apiResponse->toArray();
foreach ($response['results'] as $pipeline) {
$pipelines[] = [
'id' => $pipeline['id'],
'label' => $pipeline['label'],
];
}
return $pipelines;
}
/**
* @return array<CrmFieldOption>
*/
public function fetchMeetingOutcomeFieldOptions(Field $field): array
{
return $field->getCrmProviderId() === 'meetingOutcome'
? $this->fetchMeetingOutcomeTypes()
: $this->fetchCallActivityTypes();
}
public function fetchMeetingOutcomeTypes(): array
{
return $this->extractMeetingTypeOptions(
'[URL_WITH_CREDENTIALS] Response $response */
$response = $this->getInstance()
->getClient()
->request('GET', $endpoint);
/**
* @var array<array{
* value: string,
* label: string,
* displayOrder: int
* }> $optionData
*/
$optionData = $response->toArray()['options'] ?? [];
$options = [];
foreach ($optionData as $item) {
$options[] = [
'id' => $item['value'],
'value' => $item['value'],
'label' => $item['label'],
'display_order' => $item['displayOrder'],
];
}
return $options;
}
/**
* @return array<CrmFieldOption>
*/
public function fetchDispositionFieldOptions(): array
{
$options = [];
$dispositions = $this->fetchCallDispositions();
foreach ($dispositions as $disposition) {
if ($disposition['deleted'] !== false) {
continue;
}
$option['value'] = $disposition['id'];
$option['id'] = $disposition['id'];
$option['label'] = $disposition['label'];
$options[] = $option;
}
return $options;
}
/**
* @return array<CrmFieldOption>
*/
public function fetchOpportunityFieldOptions(Field $field): array
{
if ($field->isStageField()) {
return $this->fetchOpportunityPipelineStages();
}
if ($field->isPipelineField()) {
return $this->fetchOpportunityPipelines();
}
return $this->fetchPropertyOptions('deals', $field->getCrmProviderId());
}
/**
* @throws BadRequest
* @throws HubspotException
*/
public function makeRequest(string $endpoint, $method = 'GET', $payload = [], ?string $queryString = null)
{
$endpoint = self::BASE_URL . $endpoint;
if ($method === 'GET') {
return $this->getInstance()->getClient()?->request(
method: $method,
endpoint: $endpoint,
query_string: $queryString
);
} else {
return $this->getInstance()->getClient()->request($method, $endpoint, [
'json' => ($payload),
]);
}
}
/**
* @throws BadRequest
* @throws HubspotException
*/
public function createMeeting(array $payload): Response
{
$endpoint = '/crm/v3/objects/meetings';
return $this->makeRequest($endpoint, 'POST', $payload);
}
/**
* @throws BadRequest
* @throws HubspotException
*/
public function updateMeeting(string $meetingId, array $payload): Response
{
$endpoint = '/crm/v3/objects/meetings/' . $meetingId;
return $this->makeRequest($endpoint, 'PATCH', $payload);
}
/**
* @throws \Exception
*/
public function createNote(
string $body,
string $ownerId,
int $timestamp,
string $objectId,
NoteObject $noteObject
): ?string {
try {
$noteInput = new SimplePublicObjectInput([
'properties' => [
'hs_note_body' => $body,
'hubspot_owner_id' => $ownerId,
'hs_timestamp' => $timestamp,
],
]);
// Create note
$note = $this->getNewInstance()->crm()->objects()->basicApi()->create('note', $noteInput);
$this->getNewInstance()->crm()->objects()->associationsApi()->create(
'note',
$note->getId(),
$this->getNoteObject($noteObject),
$objectId,
$this->getNoteAssociationType($noteObject),
);
return $note->getId();
} catch (\Exception $e) {
$this->log->error('[Hubspot] Failed to create note', [
'objectId' => $objectId,
'noteObject' => $noteObject->getObjectType(),
'reason' => $e->getMessage(),
]);
\Sentry::captureException($e);
}
return null;
}
public function updateEngagement(string $objectId, array $engagement, array $metadata): void
{
$this->getInstance()->engagements()->update($objectId, $engagement, $metadata);
}
public function getEngagementData(string $engagementId): array
{
$engagement = $this->getInstance()->engagements()->get($engagementId);
return $engagement->toArray();
}
public function createEngagement(array $engagement, array $associations, array $metadata): Response
{
return $this->getInstance()
->engagements()
->create($engagement, $associations, $metadata);
}
public function isUnauthorizedException(\Exception $e): bool
{
// Check for specific HubSpot API exception types first
if ($e instanceof BadRequest) {
// BadRequest can contain 401 status codes
return $e->getCode() === 401;
}
// Check for HTTP client exceptions with status codes
if ($e instanceof \GuzzleHttp\Exception\RequestException && $e->hasResponse()) {
$response = $e->getResponse();
if ($response !== null) {
return $response->getStatusCode() === 401;
}
}
// Check for Guzzle HTTP exceptions
if ($e instanceof \GuzzleHttp\Exception\ClientException) {
return $e->getCode() === 401;
}
// Fallback to string matching as last resort, but be more specific
$message = strtolower($e->getMessage());
return str_contains($message, '401 unauthorized') ||
str_contains($message, 'http 401') ||
str_contains($message, 'status code 401') ||
(preg_match('/\b401\b/', $message) && str_contains($message, 'unauthorized'));
}
/**
* Validates and refreshes the access token if needed before API requests.
* This ensures long-running processes don't fail due to token expiration.
*
* @throws SocialAccountTokenInvalidException
*/
public function ensureValidToken(): void
{
if ($this->oauthAccount === null) {
return;
}
$newToken = $this->tokenManager->ensureValidToken($this->oauthAccount);
if ($newToken !== null) {
$this->accessToken = $newToken;
}
}
public function getConfig()
{
return $this->config;
}
// returns only active (archived=false)
public function getOwners(): array
{
return $this->getNewInstance()->crm()->owners()->getAll();
}
/**
* @param bool $archived
*
* @return array<Owner>|[]
*/
public function getOwnersArchived(bool $archived = true): array
{
$endpoint = '/crm/v3/owners';
$queryParams = [
'archived' => $archived ? 'true' : 'false',
];
$queryString = http_build_query($queryParams);
$owners = [];
try {
$response = $this->makeRequest(endpoint: $endpoint, queryString: $queryString);
$responseData = $response?->toArray();
foreach ($responseData['results'] as $result) {
try {
$owners[] = Owner::create($result);
} catch (Throwable $e) {
$this->log->error('[HubSpot] Failed to process owner data', [
'result' => $result,
'error' => $e->getMessage(),
]);
continue;
}
}
} catch (Throwable $e) {
$this->log->error('HubSpot] Failed to fetch owners', [
'archived' => $archived,
'error' => $e->getMessage(),
]);
return [];
}
return $owners;
}
public function getMeeting(string $engagementId): ObjectWithAssociations
{
return $this->getNewInstance()->crm()->objects()->basicApi()
->getById('meeting', $engagementId, null, 'contact,company,deal');
}
public function deleteEngagement(string $engagementId): void
{
$this->getInstance()->engagements()->delete((int) $engagementId);
}
public function getAssociationsData(array $ids, string $fromObject, string $toObject): array
{
$associationData = [];
$idChunks = array_chunk($ids, self::ASSOCIATIONS_BATCH_SIZE_LIMIT);
foreach ($idChunks as $idChunk) {
try {
$batchInput = new \HubSpot\Client\Crm\Associations\Model\BatchInputPublicObjectId();
$batchInput->setInputs(array_map(function ($id) {
$publicObjectId = new \HubSpot\Client\Crm\Associations\Model\PublicObjectId();
$publicObjectId->setId($id);
return $publicObjectId;
}, $idChunk));
$associatedObjectsData = $this
->getNewInstance()
->crm()
->associations()
->batchApi()
->read($fromObject, $toObject, $batchInput);
if ($associatedObjectsData instanceof \HubSpot\Client\Crm\Associations\Model\BatchResponsePublicAssociationMulti) {
foreach ($associatedObjectsData->getResults() as $association) {
$from = $association->getFrom()->getId();
$toAssociations = $association->getTo();
if (! empty($toAssociations)) {
$associationData[$from] = array_map(function ($item) {
return $item->getId();
}, $toAssociations);
}
}
}
// } catch (RateLimitException $e) {
// throw $e;
} catch (\Exception $e) {
$this->log->error('[Hubspot] Failed to fetch associations', [
'from_object' => $fromObject,
'to_object' => $toObject,
'reason' => $e->getMessage(),
]);
}
}
return $associationData;
}
/**
* @throws \Exception
*/
private function getNoteAssociationType(NoteObject $noteObject): string
{
return match($noteObject) {
NoteObject::Opportunity => 'note_to_deal',
NoteObject::Lead, NoteObject::Contact => 'note_to_contact', // or 'note_to_lead' if your portal supports it
NoteObject::Account => 'note_to_company',
NoteObject::Call, NoteObject::Event => throw new \Exception('Not supported'),
};
}
/**
* @throws \Exception
*/
private function getNoteObject(NoteObject $noteObject): string
{
return match($noteObject) {
NoteObject::Opportunity => 'deal',
NoteObject::Lead, NoteObject::Contact => 'contact',
NoteObject::Account => 'company',
NoteObject::Call, NoteObject::Event => throw new \Exception('Not supported'),
};
}
public function addAssociations(string $objectType, string $associationType, array $payload): Response
{
$endpoint = "/crm/v4/associations/$objectType/$associationType/batch/create";
return $this->makeRequest($endpoint, 'POST', $payload);
}
public function removeAssociations(string $objectType, string $associationType, array $payload): Response
{
$endpoint = "/crm/v4/associations/$objectType/$associationType/batch/archive";
return $this->makeRequest($endpoint, 'POST', $payload);
}
}
Show Replace Field
Search History
429
New Line
Match Case
Words
Regex
Replace History
Replace...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
18398
|
795
|
16
|
2026-05-11T11:15:27.981051+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778498127981_m2.jpg...
|
PhpStorm
|
faVsco.js – laravel.log
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
JY-20725-handle-HS-search Project: faVsco.js, menu
JY-20725-handle-HS-search-rate-limit, menu
Start Listening for PHP Debug Connections
HandleHubspotRateLimitTest
Run 'HandleHubspotRateLimitTest'
Debug 'HandleHubspotRateLimitTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
2
67
3
Previous Highlighted Error
Next Highlighted Error
<?php
declare(strict_types=1);
namespace Jiminny\Services\Crm\Hubspot;
use HubSpot\Client\Crm\Deals\ApiException as DealApiException;
use HubSpot\Client\Crm\Contacts\ApiException as ContactApiException;
use HubSpot\Client\Crm\Companies\ApiException as CompanyApiException;
use HubSpot\Client\Crm\Contacts\Model\SimplePublicObjectWithAssociations as ContactsWithAssociations;
use HubSpot\Client\Crm\Companies\Model\SimplePublicObjectWithAssociations as CompaniesWithAssociations;
use HubSpot\Client\Crm\Deals\Model\SimplePublicObjectWithAssociations as DealWithAssociations;
use HubSpot\Client\Crm\Objects\Model\SimplePublicObjectInput;
use HubSpot\Client\Crm\Objects\Model\SimplePublicObjectWithAssociations as ObjectWithAssociations;
use HubSpot\Client\Crm\Pipelines\Model\Error;
use HubSpot\Client\Crm\Pipelines\Model\PipelineStage;
use HubSpot\Client\Crm\Properties\Model\Property;
use HubSpot\Discovery\Discovery;
use Jiminny\Exceptions\CrmException;
use Jiminny\Exceptions\RateLimitException;
use Jiminny\Exceptions\SocialAccountTokenInvalidException;
use Jiminny\Jobs\Crm\NoteObject;
use Jiminny\Models\Crm\Field;
use Jiminny\Services\Crm\BaseClient;
use Jiminny\Services\Crm\Hubspot\DTO\Response\Owner;
use Jiminny\Services\SocialAccountService;
use SevenShores\Hubspot\Exceptions\BadRequest;
use SevenShores\Hubspot\Exceptions\HubspotException;
use SevenShores\Hubspot\Factory;
use SevenShores\Hubspot\Http\Response;
use Jiminny\Services\Crm\Hubspot\Pagination\HubspotPaginationService;
use Illuminate\Support\Facades\Redis;
use Throwable;
/**
* @phpstan-type CrmFieldOption array{id:string, label:string, value?:string}
*/
class Client extends BaseClient implements HubspotClientInterface
{
public const string MIN_API_VERSION = '2';
public const string BASE_URL = '[URL_WITH_CREDENTIALS] T
* @param callable(): T $apiCall
* @return T
*
* @throws RateLimitException
*/
private function executeRequest(callable $apiCall)
{
$cacheKey = $this->getRateLimitCacheKey();
$cachedRetryAfter = Redis::get($cacheKey);
if (is_string($cachedRetryAfter) && is_numeric($cachedRetryAfter)) {
throw new RateLimitException(
'Hubspot rate limit (cached circuit-breaker)',
(int) $cachedRetryAfter,
);
}
try {
return $apiCall();
} catch (Throwable $e) {
if ($this->isHubspotRateLimit($e)) {
$retryAfter = $this->parseRetryAfter($e);
Redis::setex($cacheKey, $retryAfter, (string) $retryAfter);
$this->log->warning('[Hubspot] Received 429 from API', [
'team_id' => $this->config->team_id,
'config_id' => $this->config->getId(),
'retry_after' => $retryAfter,
'reason' => $e->getMessage(),
]);
throw new RateLimitException('Hubspot returned 429', $retryAfter, $e);
}
throw $e;
}
}
private function getRateLimitCacheKey(): string
{
return sprintf('hubspot:ratelimit:portal:%d', $this->config->getId());
}
public function isHubspotRateLimit(Throwable $e): bool
{
if ($e instanceof BadRequest
|| $e instanceof DealApiException
|| $e instanceof ContactApiException
|| $e instanceof CompanyApiException
|| $e instanceof \GuzzleHttp\Exception\RequestException
) {
return (int) $e->getCode() === 429;
}
return false;
}
public function parseRetryAfter(Throwable $e): int
{
if (method_exists($e, 'getResponseHeaders')) {
$headers = $e->getResponseHeaders() ?: [];
$value = $headers['Retry-After'] ?? $headers['retry-after'] ?? null;
if (is_array($value)) {
$value = $value[0] ?? null;
}
if (is_numeric($value)) {
return (int) $value;
}
}
$message = strtolower($e->getMessage());
if (str_contains($message, 'daily')) {
return 600;
}
if (str_contains($message, 'ten secondly')) {
return 10;
}
if (str_contains($message, 'secondly')) {
return 1;
}
$this->log->warning('[Hubspot] No retry-after header or known message, using default', [
'exception_class' => get_class($e),
'message' => $message,
]);
return 10;
}
public function parseMessage(Throwable $e): string
{
if (! method_exists($e, 'getResponseBody')) {
return '';
}
$body = $e->getResponseBody();
if (is_string($body)) {
$body = json_decode($body, true) ?? [];
}
if (! is_array($body)) {
return '';
}
return (string) ($body['message'] ?? '');
}
public function getMinimumApiVersion(): string
{
return self::MIN_API_VERSION;
}
public function getInstance(): Factory
{
return new Factory([
'key' => $this->accessToken,
'oauth2' => true,
'base_url' => $this->baseUrl,
]);
}
public function getNewInstance(): Discovery
{
return \HubSpot\Factory::createWithAccessToken($this->accessToken);
}
/**
* Secondly and daily limits for Hubspot API
*
* Product Tier: Free & Starter | Professional & Enterprise | API add-on (any tier)
* Burst: 100/10 seconds | 150/10 seconds | 200/10 seconds
* Daily: 250,000 | 500,000 | 1,000,000
*
* Official documentation states: The search endpoints are rate limited to five requests per second.
* Since with 5 RPS were still hitting secondly rate limits we lowered it to 4
*/
public function getPaginatedData(array $payload, string $type, int $offset = 0): array
{
$total = 0;
$lastId = null;
$rows = [];
foreach ($this->getPaginatedDataGenerator($payload, $type, $offset, $total, $lastId) as $row) {
$rows[] = $row;
}
return ['results' => $rows, 'total' => $total, 'last_record' => $lastId];
}
/**
* @throws HubspotException
* @throws SocialAccountTokenInvalidException
* @throws BadRequest
*/
public function getPaginatedDataGenerator(
array $payload,
string $type,
int $offset = 0,
int &$total = 0,
?string &$lastRecordId = null
): \Generator {
return $this->paginationService->getPaginatedDataGenerator(
$this,
$payload,
$type,
$offset,
$total,
$lastRecordId
);
}
/**
* Execute a search request against HubSpot CRM objects with rate limiting.
*
* @param string $objectType The object type ('deals', 'companies', 'contacts', 'calls')
* @param array<string, mixed> $payload The search payload with filters, sorts, properties, etc.
* @return array The search response with 'results', 'total', 'paging' keys
* @throws RateLimitException When rate limit is hit
* @throws HubspotException On API errors
*/
public function search(string $objectType, array $payload): array
{
$endpoint = self::BASE_URL . "/crm/v3/objects/{$objectType}/search";
return $this->executeRequest(function () use ($endpoint, $payload) {
$response = $this->getInstance()->getClient()->request('POST', $endpoint, ['json' => $payload]);
return $response->toArray();
});
}
/**
* @throws DealApiException
* @throws CrmException
*/
public function getOpportunityById(string $crmId, array $fields): array
{
try {
$deal = $this->getNewInstance()->crm()->deals()->basicApi()->getById(
$crmId,
implode(',', $fields),
'companies,contacts'
);
} catch (DealApiException $e) {
$this->log->info('[Hubspot] Failed to fetch opportunity', [
'crm_id' => $crmId,
'reason' => $e->getMessage(),
]);
throw $e;
}
if (! $deal instanceof DealWithAssociations) {
throw new CrmException('Deal not found');
}
return [
'id' => $deal->getId(),
'properties' => $deal->getProperties(),
'associations' => $deal->getAssociations(),
];
}
/**
* Generic batch read method for HubSpot objects
*
* @param string $objectType The object type ('deals', 'companies', 'contacts')
* @param array<string> $crmIds Array of HubSpot object IDs (max 100)
* @param array<string> $fields Array of property names to fetch
*
* @return array<string, array> Array keyed by CRM ID with object data
*/
private function batchReadObjects(string $objectType, array $crmIds, array $fields): array
{
if (empty($crmIds)) {
return [];
}
$this->validateBatchSize($objectType, $crmIds);
$this->ensureValidToken();
try {
$batchConfig = $this->createBatchConfiguration($objectType);
$batchReadRequest = $this->prepareBatchRequest($batchConfig, $crmIds, $fields);
$response = $batchConfig['api']->read($batchReadRequest);
$this->validateApiResponse($response, $objectType);
$results = $this->processApiResults($response);
$this->logBatchResults($objectType, $crmIds, $results);
return $results;
} catch (\Throwable $e) {
$this->handleBatchError($e, $objectType, $crmIds);
}
}
private function validateBatchSize(string $objectType, array $crmIds): void
{
if (count($crmIds) > 100) {
throw new \InvalidArgumentException("Batch size cannot exceed 100 {$objectType}");
}
}
private function createBatchConfiguration(string $objectType): array
{
$configurations = [
'deals' => [
'batchReadRequest' => new \HubSpot\Client\Crm\Deals\Model\BatchReadInputSimplePublicObjectId(),
'inputClass' => \HubSpot\Client\Crm\Deals\Model\SimplePublicObjectId::class,
'api' => $this->getNewInstance()->crm()->deals()->batchApi(),
],
'companies' => [
'batchReadRequest' => new \HubSpot\Client\Crm\Companies\Model\BatchReadInputSimplePublicObjectId(),
'inputClass' => \HubSpot\Client\Crm\Companies\Model\SimplePublicObjectId::class,
'api' => $this->getNewInstance()->crm()->companies()->batchApi(),
],
'contacts' => [
'batchReadRequest' => new \HubSpot\Client\Crm\Contacts\Model\BatchReadInputSimplePublicObjectId(),
'inputClass' => \HubSpot\Client\Crm\Contacts\Model\SimplePublicObjectId::class,
'api' => $this->getNewInstance()->crm()->contacts()->batchApi(),
],
];
if (! isset($configurations[$objectType])) {
throw new \InvalidArgumentException("Unsupported object type: {$objectType}");
}
return $configurations[$objectType];
}
private function prepareBatchRequest(array $batchConfig, array $crmIds, array $fields): object
{
$batchReadRequest = $batchConfig['batchReadRequest'];
$inputClass = $batchConfig['inputClass'];
$inputs = array_map(function ($crmId) use ($inputClass) {
$input = new $inputClass();
$input->setId($crmId);
return $input;
}, $crmIds);
$batchReadRequest->setInputs($inputs);
$batchReadRequest->setProperties($fields);
return $batchReadRequest;
}
private function validateApiResponse($response, string $objectType): void
{
if (! $response) {
throw new CrmException("HubSpot API returned null response for {$objectType} batch read");
}
}
private function processApiResults($response): array
{
$results = [];
$responseResults = $response->getResults();
if ($responseResults) {
foreach ($responseResults as $object) {
if ($object && $object->getId()) {
$results[$object->getId()] = [
'id' => $object->getId(),
'properties' => $object->getProperties() ?: [],
];
}
}
}
return $results;
}
private function logBatchResults(string $objectType, array $crmIds, array $results): void
{
$this->log->info("[HubSpot] Batch fetched {$objectType}", [
'requested_count' => count($crmIds),
'returned_count' => count($results),
'crm_ids' => $crmIds,
]);
}
private function handleBatchError(\Throwable $e, string $objectType, array $crmIds): void
{
$errorMessage = $e->getMessage() ?: 'Unknown error';
$errorTrace = $e->getTraceAsString() ?: 'No trace available';
$this->log->error("[HubSpot] Failed to batch fetch {$objectType}", [
'crm_ids' => $crmIds,
'error' => $errorMessage,
'trace' => $errorTrace,
]);
throw new CrmException("Failed to batch fetch {$objectType}: " . $errorMessage);
}
/**
* Batch read multiple opportunities by their CRM IDs
*
* @param array<string> $crmIds Array of HubSpot deal IDs (max 100)
* @param array<string> $fields Array of property names to fetch
*
* @return array<string, array> Array keyed by CRM ID with opportunity data
*/
public function getOpportunitiesByIds(array $crmIds, array $fields): array
{
return $this->batchReadObjects('deals', $crmIds, $fields);
}
/**
* Batch read multiple companies by their CRM IDs
*
* @param array<string> $crmIds Array of HubSpot company IDs (max 100)
* @param array<string> $fields Array of property names to fetch
*
* @return array<string, array> Array keyed by CRM ID with company data
*/
public function getCompaniesByIds(array $crmIds, array $fields): array
{
return $this->batchReadObjects('companies', $crmIds, $fields);
}
/**
* Batch read multiple contacts by their CRM IDs
*
* @param array<string> $crmIds Array of HubSpot contact IDs (max 100)
* @param array<string> $fields Array of property names to fetch
*
* @return array<string, array> Array keyed by CRM ID with contact data
*/
public function getContactsByIds(array $crmIds, array $fields): array
{
return $this->batchReadObjects('contacts', $crmIds, $fields);
}
/**
* @throws CompanyApiException
* @throws CrmException
*/
public function getAccountById(string $crmId, array $fields): array
{
try {
$company = $this->getNewInstance()->crm()->companies()->basicApi()->getById(
$crmId,
implode(',', $fields),
);
} catch (CompanyApiException $e) {
$this->log->info('[Hubspot] Failed to fetch account', [
'crm_id' => $crmId,
'reason' => $e->getMessage(),
]);
throw $e;
}
if (! $company instanceof CompaniesWithAssociations) {
throw new CrmException('Account not found');
}
return [
'id' => $company->getId(),
'properties' => $company->getProperties(),
];
}
/**
* @throws ContactApiException
* @throws CrmException
*/
public function getContactById(string $crmId, array $fields): array
{
try {
$contact = $this->getNewInstance()->crm()->contacts()->basicApi()->getById(
$crmId,
implode(',', $fields)
);
} catch (ContactApiException $e) {
$this->log->info('[Hubspot] Failed to fetch contact', [
'crm_id' => $crmId,
'reason' => $e->getMessage(),
]);
throw $e;
}
if (! $contact instanceof ContactsWithAssociations) {
throw new CrmException('Contact not found');
}
return [
'id' => $contact->getId(),
'properties' => $contact->getProperties(),
];
}
/**
* This is email search request that Hubspot offers as GET (more generous quota)
*/
public function getContactByEmail(string $email, array $fields = []): array
{
try {
$contact = $this->getNewInstance()->crm()->contacts()->basicApi()->getById(
$email,
implode(',', $fields),
null,
false,
'email'
);
return [
'id' => $contact->getId(),
'properties' => $contact->getProperties(),
];
} catch (ContactApiException $e) {
$this->log->info('[Hubspot] Failed to fetch contact', [
'email' => $email,
'reason' => $e->getMessage(),
]);
return [];
}
}
/**
* @throws CrmException
*/
public function fetchProperty(string $objectType, string $propertyId): Property
{
$result = $this->getNewInstance()->crm()->properties()->coreApi()->getByName($objectType, $propertyId);
if (! $result instanceof Property) {
$this->log->error('[Hubspot] Failed to fetch property', [
'object_type' => $objectType,
'property_id' => $propertyId,
'reason' => $result->getMessage(),
]);
throw new CrmException('Failed to fetch property');
}
return $result;
}
/**
* @return array<CrmFieldOption>
*/
public function fetchPropertyOptions(string $objectType, string $propertyId): array
{
/** @var array<CrmFieldOption> */
return $this->fetchProperty($objectType, $propertyId)->getOptions();
}
/**
* @return array<array{id:string, label:string, deleted:bool}>
*/
public function fetchCallDispositions(): array
{
/** @var Response $response */
$response = $this->getInstance()->engagements()->getCallDispositions();
/**
* @var array<array{
* id:string,
* label:string,
* deleted: bool
* }>
*/
return $response->toArray();
}
/**
* @return array<CrmFieldOption>
*/
public function fetchOpportunityPipelineStages(): array
{
$stages = [];
$apiResponse = $this->getNewInstance()->crm()->pipelines()->pipelinesApi()->getAll('deals');
if ($apiResponse instanceof Error) {
$this->log->error('[Hubspot] Failed to fetch opportunity pipelines', [
'reason' => $apiResponse->getMessage(),
]);
return [];
}
foreach ($apiResponse->getResults() as $pipeline) {
$pipelineStages = array_map(
static function (PipelineStage $stage) {
return [
'id' => $stage->getId(),
'label' => $stage->getLabel(),
];
},
$pipeline->getStages()
);
$stages = array_merge($stages, $pipelineStages);
}
return $stages;
}
public function fetchOpportunityPipelines(): array
{
$pipelines = [];
try {
$apiResponse = $this->makeRequest('/crm/v3/pipelines/deals');
} catch (\Exception $e) {
$this->log->info('[Hubspot] Failed to fetch opportunity pipelines', [
'reason' => $e->getMessage(),
]);
return [];
}
$response = $apiResponse->toArray();
foreach ($response['results'] as $pipeline) {
$pipelines[] = [
'id' => $pipeline['id'],
'label' => $pipeline['label'],
];
}
return $pipelines;
}
/**
* @return array<CrmFieldOption>
*/
public function fetchMeetingOutcomeFieldOptions(Field $field): array
{
return $field->getCrmProviderId() === 'meetingOutcome'
? $this->fetchMeetingOutcomeTypes()
: $this->fetchCallActivityTypes();
}
public function fetchMeetingOutcomeTypes(): array
{
return $this->extractMeetingTypeOptions(
'[URL_WITH_CREDENTIALS] Response $response */
$response = $this->getInstance()
->getClient()
->request('GET', $endpoint);
/**
* @var array<array{
* value: string,
* label: string,
* displayOrder: int
* }> $optionData
*/
$optionData = $response->toArray()['options'] ?? [];
$options = [];
foreach ($optionData as $item) {
$options[] = [
'id' => $item['value'],
'value' => $item['value'],
'label' => $item['label'],
'display_order' => $item['displayOrder'],
];
}
return $options;
}
/**
* @return array<CrmFieldOption>
*/
public function fetchDispositionFieldOptions(): array
{
$options = [];
$dispositions = $this->fetchCallDispositions();
foreach ($dispositions as $disposition) {
if ($disposition['deleted'] !== false) {
continue;
}
$option['value'] = $disposition['id'];
$option['id'] = $disposition['id'];
$option['label'] = $disposition['label'];
$options[] = $option;
}
return $options;
}
/**
* @return array<CrmFieldOption>
*/
public function fetchOpportunityFieldOptions(Field $field): array
{
if ($field->isStageField()) {
return $this->fetchOpportunityPipelineStages();
}
if ($field->isPipelineField()) {
return $this->fetchOpportunityPipelines();
}
return $this->fetchPropertyOptions('deals', $field->getCrmProviderId());
}
/**
* @throws BadRequest
* @throws HubspotException
*/
public function makeRequest(string $endpoint, $method = 'GET', $payload = [], ?string $queryString = null)
{
$endpoint = self::BASE_URL . $endpoint;
if ($method === 'GET') {
return $this->getInstance()->getClient()?->request(
method: $method,
endpoint: $endpoint,
query_string: $queryString
);
} else {
return $this->getInstance()->getClient()->request($method, $endpoint, [
'json' => ($payload),
]);
}
}
/**
* @throws BadRequest
* @throws HubspotException
*/
public function createMeeting(array $payload): Response
{
$endpoint = '/crm/v3/objects/meetings';
return $this->makeRequest($endpoint, 'POST', $payload);
}
/**
* @throws BadRequest
* @throws HubspotException
*/
public function updateMeeting(string $meetingId, array $payload): Response
{
$endpoint = '/crm/v3/objects/meetings/' . $meetingId;
return $this->makeRequest($endpoint, 'PATCH', $payload);
}
/**
* @throws \Exception
*/
public function createNote(
string $body,
string $ownerId,
int $timestamp,
string $objectId,
NoteObject $noteObject
): ?string {
try {
$noteInput = new SimplePublicObjectInput([
'properties' => [
'hs_note_body' => $body,
'hubspot_owner_id' => $ownerId,
'hs_timestamp' => $timestamp,
],
]);
// Create note
$note = $this->getNewInstance()->crm()->objects()->basicApi()->create('note', $noteInput);
$this->getNewInstance()->crm()->objects()->associationsApi()->create(
'note',
$note->getId(),
$this->getNoteObject($noteObject),
$objectId,
$this->getNoteAssociationType($noteObject),
);
return $note->getId();
} catch (\Exception $e) {
$this->log->error('[Hubspot] Failed to create note', [
'objectId' => $objectId,
'noteObject' => $noteObject->getObjectType(),
'reason' => $e->getMessage(),
]);
\Sentry::captureException($e);
}
return null;
}
public function updateEngagement(string $objectId, array $engagement, array $metadata): void
{
$this->getInstance()->engagements()->update($objectId, $engagement, $metadata);
}
public function getEngagementData(string $engagementId): array
{
$engagement = $this->getInstance()->engagements()->get($engagementId);
return $engagement->toArray();
}
public function createEngagement(array $engagement, array $associations, array $metadata): Response
{
return $this->getInstance()
->engagements()
->create($engagement, $associations, $metadata);
}
public function isUnauthorizedException(\Exception $e): bool
{
// Check for specific HubSpot API exception types first
if ($e instanceof BadRequest) {
// BadRequest can contain 401 status codes
return $e->getCode() === 401;
}
// Check for HTTP client exceptions with status codes
if ($e instanceof \GuzzleHttp\Exception\RequestException && $e->hasResponse()) {
$response = $e->getResponse();
if ($response !== null) {
return $response->getStatusCode() === 401;
}
}
// Check for Guzzle HTTP exceptions
if ($e instanceof \GuzzleHttp\Exception\ClientException) {
return $e->getCode() === 401;
}
// Fallback to string matching as last resort, but be more specific
$message = strtolower($e->getMessage());
return str_contains($message, '401 unauthorized') ||
str_contains($message, 'http 401') ||
str_contains($message, 'status code 401') ||
(preg_match('/\b401\b/', $message) && str_contains($message, 'unauthorized'));
}
/**
* Validates and refreshes the access token if needed before API requests.
* This ensures long-running processes don't fail due to token expiration.
*
* @throws SocialAccountTokenInvalidException
*/
public function ensureValidToken(): void
{
if ($this->oauthAccount === null) {
return;
}
$newToken = $this->tokenManager->ensureValidToken($this->oauthAccount);
if ($newToken !== null) {
$this->accessToken = $newToken;
}
}
public function getConfig()
{
return $this->config;
}
// returns only active (archived=false)
public function getOwners(): array
{
return $this->getNewInstance()->crm()->owners()->getAll();
}
/**
* @param bool $archived
*
* @return array<Owner>|[]
*/
public function getOwnersArchived(bool $archived = true): array
{
$endpoint = '/crm/v3/owners';
$queryParams = [
'archived' => $archived ? 'true' : 'false',
];
$queryString = http_build_query($queryParams);
$owners = [];
try {
$response = $this->makeRequest(endpoint: $endpoint, queryString: $queryString);
$responseData = $response?->toArray();
foreach ($responseData['results'] as $result) {
try {
$owners[] = Owner::create($result);
} catch (Throwable $e) {
$this->log->error('[HubSpot] Failed to process owner data', [
'result' => $result,
'error' => $e->getMessage(),
]);
continue;
}
}
} catch (Throwable $e) {
$this->log->error('HubSpot] Failed to fetch owners', [
'archived' => $archived,
'error' => $e->getMessage(),
]);
return [];
}
return $owners;
}
public function getMeeting(string $engagementId): ObjectWithAssociations
{
return $this->getNewInstance()->crm()->objects()->basicApi()
->getById('meeting', $engagementId, null, 'contact,company,deal');
}
public function deleteEngagement(string $engagementId): void
{
$this->getInstance()->engagements()->delete((int) $engagementId);
}
public function getAssociationsData(array $ids, string $fromObject, string $toObject): array
{
$associationData = [];
$idChunks = array_chunk($ids, self::ASSOCIATIONS_BATCH_SIZE_LIMIT);
foreach ($idChunks as $idChunk) {
try {
$batchInput = new \HubSpot\Client\Crm\Associations\Model\BatchInputPublicObjectId();
$batchInput->setInputs(array_map(function ($id) {
$publicObjectId = new \HubSpot\Client\Crm\Associations\Model\PublicObjectId();
$publicObjectId->setId($id);
return $publicObjectId;
}, $idChunk));
$associatedObjectsData = $this
->getNewInstance()
->crm()
->associations()
->batchApi()
->read($fromObject, $toObject, $batchInput);
if ($associatedObjectsData instanceof \HubSpot\Client\Crm\Associations\Model\BatchResponsePublicAssociationMulti) {
foreach ($associatedObjectsData->getResults() as $association) {
$from = $association->getFrom()->getId();
$toAssociations = $association->getTo();
if (! empty($toAssociations)) {
$associationData[$from] = array_map(function ($item) {
return $item->getId();
}, $toAssociations);
}
}
}
// } catch (RateLimitException $e) {
// throw $e;
} catch (\Exception $e) {
$this->log->error('[Hubspot] Failed to fetch associations', [
'from_object' => $fromObject,
'to_object' => $toObject,
'reason' => $e->getMessage(),
]);
}
}
return $associationData;
}
/**
* @throws \Exception
*/
private function getNoteAssociationType(NoteObject $noteObject): string
{
return match($noteObject) {
NoteObject::Opportunity => 'note_to_deal',
NoteObject::Lead, NoteObject::Contact => 'note_to_contact', // or 'note_to_lead' if your portal supports it
NoteObject::Account => 'note_to_company',
NoteObject::Call, NoteObject::Event => throw new \Exception('Not supported'),
};
}
/**
* @throws \Exception
*/
private function getNoteObject(NoteObject $noteObject): string
{
return match($noteObject) {
NoteObject::Opportunity => 'deal',
NoteObject::Lead, NoteObject::Contact => 'contact',
NoteObject::Account => 'company',
NoteObject::Call, NoteObject::Event => throw new \Exception('Not supported'),
};
}
public function addAssociations(string $objectType, string $associationType, array $payload): Response
{
$endpoint = "/crm/v4/associations/$objectType/$associationType/batch/create";
return $this->makeRequest($endpoint, 'POST', $payload);
}
public function removeAssociations(string $objectType, string $associationType, array $payload): Response
{
$endpoint = "/crm/v4/associations/$objectType/$associationType/batch/archive";
return $this->makeRequest($endpoint, 'POST', $payload);
}
}
Show Replace Field
Search History
429
New Line
Match Case
Words
Regex
Replace History
Replace
New Line
Preserve case
0 results
Previous Occurrence
Next Occurrence
Filter Search Results
Open in Window, Multiple Cursors...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"bounds":{"left":0.025930852,"top":0.019952115,"width":0.03856383,"height":0.025538707},"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JY-20725-handle-HS-search-rate-limit, menu","depth":5,"bounds":{"left":0.064494684,"top":0.019952115,"width":0.09541223,"height":0.025538707},"on_screen":true,"help_text":"Git Branch: JY-20725-handle-HS-search-rate-limit","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"bounds":{"left":0.82413566,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"HandleHubspotRateLimitTest","depth":6,"bounds":{"left":0.8394282,"top":0.019952115,"width":0.076130316,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'HandleHubspotRateLimitTest'","depth":6,"bounds":{"left":0.9155585,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Debug 'HandleHubspotRateLimitTest'","depth":6,"bounds":{"left":0.9268617,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More Actions","depth":6,"bounds":{"left":0.9381649,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JetBrains AI","depth":5,"bounds":{"left":0.96609044,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Search Everywhere","depth":5,"bounds":{"left":0.9773936,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"IDE and Project Settings","depth":5,"bounds":{"left":0.9886968,"top":0.019952115,"width":0.011303186,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.042220745,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"2","depth":4,"bounds":{"left":0.50731385,"top":0.17478053,"width":0.007978723,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"67","depth":4,"bounds":{"left":0.51728725,"top":0.17478053,"width":0.009973404,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"3","depth":4,"bounds":{"left":0.52925533,"top":0.17478053,"width":0.007978723,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"bounds":{"left":0.53889626,"top":0.17318435,"width":0.00731383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Next Highlighted Error","depth":4,"bounds":{"left":0.5462101,"top":0.17318435,"width":0.006981383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Services\\Crm\\Hubspot;\n\nuse HubSpot\\Client\\Crm\\Deals\\ApiException as DealApiException;\nuse HubSpot\\Client\\Crm\\Contacts\\ApiException as ContactApiException;\nuse HubSpot\\Client\\Crm\\Companies\\ApiException as CompanyApiException;\nuse HubSpot\\Client\\Crm\\Contacts\\Model\\SimplePublicObjectWithAssociations as ContactsWithAssociations;\nuse HubSpot\\Client\\Crm\\Companies\\Model\\SimplePublicObjectWithAssociations as CompaniesWithAssociations;\nuse HubSpot\\Client\\Crm\\Deals\\Model\\SimplePublicObjectWithAssociations as DealWithAssociations;\nuse HubSpot\\Client\\Crm\\Objects\\Model\\SimplePublicObjectInput;\nuse HubSpot\\Client\\Crm\\Objects\\Model\\SimplePublicObjectWithAssociations as ObjectWithAssociations;\nuse HubSpot\\Client\\Crm\\Pipelines\\Model\\Error;\nuse HubSpot\\Client\\Crm\\Pipelines\\Model\\PipelineStage;\nuse HubSpot\\Client\\Crm\\Properties\\Model\\Property;\nuse HubSpot\\Discovery\\Discovery;\nuse Jiminny\\Exceptions\\CrmException;\nuse Jiminny\\Exceptions\\RateLimitException;\nuse Jiminny\\Exceptions\\SocialAccountTokenInvalidException;\nuse Jiminny\\Jobs\\Crm\\NoteObject;\nuse Jiminny\\Models\\Crm\\Field;\nuse Jiminny\\Services\\Crm\\BaseClient;\nuse Jiminny\\Services\\Crm\\Hubspot\\DTO\\Response\\Owner;\nuse Jiminny\\Services\\SocialAccountService;\nuse SevenShores\\Hubspot\\Exceptions\\BadRequest;\nuse SevenShores\\Hubspot\\Exceptions\\HubspotException;\nuse SevenShores\\Hubspot\\Factory;\nuse SevenShores\\Hubspot\\Http\\Response;\nuse Jiminny\\Services\\Crm\\Hubspot\\Pagination\\HubspotPaginationService;\nuse Illuminate\\Support\\Facades\\Redis;\nuse Throwable;\n\n/**\n * @phpstan-type CrmFieldOption array{id:string, label:string, value?:string}\n */\nclass Client extends BaseClient implements HubspotClientInterface\n{\n public const string MIN_API_VERSION = '2';\n\n public const string BASE_URL = 'https://api.hubapi.com';\n\n public const int ASSOCIATIONS_BATCH_SIZE_LIMIT = 1000;\n\n private HubspotPaginationService $paginationService;\n private HubspotTokenManager $tokenManager;\n\n public function __construct(\n SocialAccountService $socialAccountService,\n HubspotPaginationService $paginationService,\n HubspotTokenManager $tokenManager\n ) {\n parent::__construct($socialAccountService);\n $this->paginationService = $paginationService;\n $this->tokenManager = $tokenManager;\n\n $this->setBaseUrl(self::BASE_URL);\n $this->setVersion(self::MIN_API_VERSION);\n }\n\n /**\n * Reacts to a rate limits (429) from HubSpot by translating it\n * into a RateLimitException carrying retry_after.\n *\n * Wrap any outbound HubSpot call (SDK or raw HTTP) like:\n *\n * $this->executeRequest(fn () => $this->getNewInstance()->crm()->...);\n *\n * @template T\n * @param callable(): T $apiCall\n * @return T\n *\n * @throws RateLimitException\n */\n private function executeRequest(callable $apiCall)\n {\n $cacheKey = $this->getRateLimitCacheKey();\n\n $cachedRetryAfter = Redis::get($cacheKey);\n if (is_string($cachedRetryAfter) && is_numeric($cachedRetryAfter)) {\n throw new RateLimitException(\n 'Hubspot rate limit (cached circuit-breaker)',\n (int) $cachedRetryAfter,\n );\n }\n\n try {\n return $apiCall();\n } catch (Throwable $e) {\n if ($this->isHubspotRateLimit($e)) {\n $retryAfter = $this->parseRetryAfter($e);\n\n Redis::setex($cacheKey, $retryAfter, (string) $retryAfter);\n\n $this->log->warning('[Hubspot] Received 429 from API', [\n 'team_id' => $this->config->team_id,\n 'config_id' => $this->config->getId(),\n 'retry_after' => $retryAfter,\n 'reason' => $e->getMessage(),\n ]);\n\n throw new RateLimitException('Hubspot returned 429', $retryAfter, $e);\n }\n\n throw $e;\n }\n }\n\n private function getRateLimitCacheKey(): string\n {\n return sprintf('hubspot:ratelimit:portal:%d', $this->config->getId());\n }\n\n public function isHubspotRateLimit(Throwable $e): bool\n {\n if ($e instanceof BadRequest\n || $e instanceof DealApiException\n || $e instanceof ContactApiException\n || $e instanceof CompanyApiException\n || $e instanceof \\GuzzleHttp\\Exception\\RequestException\n ) {\n return (int) $e->getCode() === 429;\n }\n\n return false;\n }\n\n public function parseRetryAfter(Throwable $e): int\n {\n if (method_exists($e, 'getResponseHeaders')) {\n $headers = $e->getResponseHeaders() ?: [];\n $value = $headers['Retry-After'] ?? $headers['retry-after'] ?? null;\n if (is_array($value)) {\n $value = $value[0] ?? null;\n }\n if (is_numeric($value)) {\n return (int) $value;\n }\n }\n\n $message = strtolower($e->getMessage());\n\n if (str_contains($message, 'daily')) {\n return 600;\n }\n if (str_contains($message, 'ten secondly')) {\n return 10;\n }\n if (str_contains($message, 'secondly')) {\n return 1;\n }\n\n $this->log->warning('[Hubspot] No retry-after header or known message, using default', [\n 'exception_class' => get_class($e),\n 'message' => $message,\n ]);\n\n return 10;\n }\n\n public function parseMessage(Throwable $e): string\n {\n if (! method_exists($e, 'getResponseBody')) {\n return '';\n }\n\n $body = $e->getResponseBody();\n if (is_string($body)) {\n $body = json_decode($body, true) ?? [];\n }\n\n if (! is_array($body)) {\n return '';\n }\n\n return (string) ($body['message'] ?? '');\n }\n\n public function getMinimumApiVersion(): string\n {\n return self::MIN_API_VERSION;\n }\n\n public function getInstance(): Factory\n {\n return new Factory([\n 'key' => $this->accessToken,\n 'oauth2' => true,\n 'base_url' => $this->baseUrl,\n ]);\n }\n\n public function getNewInstance(): Discovery\n {\n return \\HubSpot\\Factory::createWithAccessToken($this->accessToken);\n }\n\n /**\n * Secondly and daily limits for Hubspot API\n *\n * Product Tier: Free & Starter | Professional & Enterprise | API add-on (any tier)\n * Burst: 100/10 seconds | 150/10 seconds | 200/10 seconds\n * Daily: 250,000 | 500,000 | 1,000,000\n *\n * Official documentation states: The search endpoints are rate limited to five requests per second.\n * Since with 5 RPS were still hitting secondly rate limits we lowered it to 4\n */\n public function getPaginatedData(array $payload, string $type, int $offset = 0): array\n {\n $total = 0;\n $lastId = null;\n $rows = [];\n foreach ($this->getPaginatedDataGenerator($payload, $type, $offset, $total, $lastId) as $row) {\n $rows[] = $row;\n }\n\n return ['results' => $rows, 'total' => $total, 'last_record' => $lastId];\n }\n\n /**\n * @throws HubspotException\n * @throws SocialAccountTokenInvalidException\n * @throws BadRequest\n */\n public function getPaginatedDataGenerator(\n array $payload,\n string $type,\n int $offset = 0,\n int &$total = 0,\n ?string &$lastRecordId = null\n ): \\Generator {\n return $this->paginationService->getPaginatedDataGenerator(\n $this,\n $payload,\n $type,\n $offset,\n $total,\n $lastRecordId\n );\n }\n\n /**\n * Execute a search request against HubSpot CRM objects with rate limiting.\n *\n * @param string $objectType The object type ('deals', 'companies', 'contacts', 'calls')\n * @param array<string, mixed> $payload The search payload with filters, sorts, properties, etc.\n * @return array The search response with 'results', 'total', 'paging' keys\n * @throws RateLimitException When rate limit is hit\n * @throws HubspotException On API errors\n */\n public function search(string $objectType, array $payload): array\n {\n $endpoint = self::BASE_URL . \"/crm/v3/objects/{$objectType}/search\";\n\n return $this->executeRequest(function () use ($endpoint, $payload) {\n $response = $this->getInstance()->getClient()->request('POST', $endpoint, ['json' => $payload]);\n\n return $response->toArray();\n });\n }\n\n /**\n * @throws DealApiException\n * @throws CrmException\n */\n public function getOpportunityById(string $crmId, array $fields): array\n {\n try {\n $deal = $this->getNewInstance()->crm()->deals()->basicApi()->getById(\n $crmId,\n implode(',', $fields),\n 'companies,contacts'\n );\n } catch (DealApiException $e) {\n $this->log->info('[Hubspot] Failed to fetch opportunity', [\n 'crm_id' => $crmId,\n 'reason' => $e->getMessage(),\n ]);\n\n throw $e;\n }\n\n if (! $deal instanceof DealWithAssociations) {\n throw new CrmException('Deal not found');\n }\n\n return [\n 'id' => $deal->getId(),\n 'properties' => $deal->getProperties(),\n 'associations' => $deal->getAssociations(),\n ];\n }\n\n /**\n * Generic batch read method for HubSpot objects\n *\n * @param string $objectType The object type ('deals', 'companies', 'contacts')\n * @param array<string> $crmIds Array of HubSpot object IDs (max 100)\n * @param array<string> $fields Array of property names to fetch\n *\n * @return array<string, array> Array keyed by CRM ID with object data\n */\n private function batchReadObjects(string $objectType, array $crmIds, array $fields): array\n {\n if (empty($crmIds)) {\n return [];\n }\n\n $this->validateBatchSize($objectType, $crmIds);\n $this->ensureValidToken();\n\n try {\n $batchConfig = $this->createBatchConfiguration($objectType);\n $batchReadRequest = $this->prepareBatchRequest($batchConfig, $crmIds, $fields);\n $response = $batchConfig['api']->read($batchReadRequest);\n\n $this->validateApiResponse($response, $objectType);\n\n $results = $this->processApiResults($response);\n $this->logBatchResults($objectType, $crmIds, $results);\n\n return $results;\n } catch (\\Throwable $e) {\n $this->handleBatchError($e, $objectType, $crmIds);\n }\n }\n\n private function validateBatchSize(string $objectType, array $crmIds): void\n {\n if (count($crmIds) > 100) {\n throw new \\InvalidArgumentException(\"Batch size cannot exceed 100 {$objectType}\");\n }\n }\n\n private function createBatchConfiguration(string $objectType): array\n {\n $configurations = [\n 'deals' => [\n 'batchReadRequest' => new \\HubSpot\\Client\\Crm\\Deals\\Model\\BatchReadInputSimplePublicObjectId(),\n 'inputClass' => \\HubSpot\\Client\\Crm\\Deals\\Model\\SimplePublicObjectId::class,\n 'api' => $this->getNewInstance()->crm()->deals()->batchApi(),\n ],\n 'companies' => [\n 'batchReadRequest' => new \\HubSpot\\Client\\Crm\\Companies\\Model\\BatchReadInputSimplePublicObjectId(),\n 'inputClass' => \\HubSpot\\Client\\Crm\\Companies\\Model\\SimplePublicObjectId::class,\n 'api' => $this->getNewInstance()->crm()->companies()->batchApi(),\n ],\n 'contacts' => [\n 'batchReadRequest' => new \\HubSpot\\Client\\Crm\\Contacts\\Model\\BatchReadInputSimplePublicObjectId(),\n 'inputClass' => \\HubSpot\\Client\\Crm\\Contacts\\Model\\SimplePublicObjectId::class,\n 'api' => $this->getNewInstance()->crm()->contacts()->batchApi(),\n ],\n ];\n\n if (! isset($configurations[$objectType])) {\n throw new \\InvalidArgumentException(\"Unsupported object type: {$objectType}\");\n }\n\n return $configurations[$objectType];\n }\n\n private function prepareBatchRequest(array $batchConfig, array $crmIds, array $fields): object\n {\n $batchReadRequest = $batchConfig['batchReadRequest'];\n $inputClass = $batchConfig['inputClass'];\n\n $inputs = array_map(function ($crmId) use ($inputClass) {\n $input = new $inputClass();\n $input->setId($crmId);\n\n return $input;\n }, $crmIds);\n\n $batchReadRequest->setInputs($inputs);\n $batchReadRequest->setProperties($fields);\n\n return $batchReadRequest;\n }\n\n private function validateApiResponse($response, string $objectType): void\n {\n if (! $response) {\n throw new CrmException(\"HubSpot API returned null response for {$objectType} batch read\");\n }\n }\n\n private function processApiResults($response): array\n {\n $results = [];\n $responseResults = $response->getResults();\n\n if ($responseResults) {\n foreach ($responseResults as $object) {\n if ($object && $object->getId()) {\n $results[$object->getId()] = [\n 'id' => $object->getId(),\n 'properties' => $object->getProperties() ?: [],\n ];\n }\n }\n }\n\n return $results;\n }\n\n private function logBatchResults(string $objectType, array $crmIds, array $results): void\n {\n $this->log->info(\"[HubSpot] Batch fetched {$objectType}\", [\n 'requested_count' => count($crmIds),\n 'returned_count' => count($results),\n 'crm_ids' => $crmIds,\n ]);\n }\n\n private function handleBatchError(\\Throwable $e, string $objectType, array $crmIds): void\n {\n $errorMessage = $e->getMessage() ?: 'Unknown error';\n $errorTrace = $e->getTraceAsString() ?: 'No trace available';\n\n $this->log->error(\"[HubSpot] Failed to batch fetch {$objectType}\", [\n 'crm_ids' => $crmIds,\n 'error' => $errorMessage,\n 'trace' => $errorTrace,\n ]);\n\n throw new CrmException(\"Failed to batch fetch {$objectType}: \" . $errorMessage);\n }\n\n /**\n * Batch read multiple opportunities by their CRM IDs\n *\n * @param array<string> $crmIds Array of HubSpot deal IDs (max 100)\n * @param array<string> $fields Array of property names to fetch\n *\n * @return array<string, array> Array keyed by CRM ID with opportunity data\n */\n public function getOpportunitiesByIds(array $crmIds, array $fields): array\n {\n return $this->batchReadObjects('deals', $crmIds, $fields);\n }\n\n /**\n * Batch read multiple companies by their CRM IDs\n *\n * @param array<string> $crmIds Array of HubSpot company IDs (max 100)\n * @param array<string> $fields Array of property names to fetch\n *\n * @return array<string, array> Array keyed by CRM ID with company data\n */\n public function getCompaniesByIds(array $crmIds, array $fields): array\n {\n return $this->batchReadObjects('companies', $crmIds, $fields);\n }\n\n /**\n * Batch read multiple contacts by their CRM IDs\n *\n * @param array<string> $crmIds Array of HubSpot contact IDs (max 100)\n * @param array<string> $fields Array of property names to fetch\n *\n * @return array<string, array> Array keyed by CRM ID with contact data\n */\n public function getContactsByIds(array $crmIds, array $fields): array\n {\n return $this->batchReadObjects('contacts', $crmIds, $fields);\n }\n\n /**\n * @throws CompanyApiException\n * @throws CrmException\n */\n public function getAccountById(string $crmId, array $fields): array\n {\n try {\n $company = $this->getNewInstance()->crm()->companies()->basicApi()->getById(\n $crmId,\n implode(',', $fields),\n );\n } catch (CompanyApiException $e) {\n $this->log->info('[Hubspot] Failed to fetch account', [\n 'crm_id' => $crmId,\n 'reason' => $e->getMessage(),\n ]);\n\n throw $e;\n }\n\n if (! $company instanceof CompaniesWithAssociations) {\n throw new CrmException('Account not found');\n }\n\n return [\n 'id' => $company->getId(),\n 'properties' => $company->getProperties(),\n ];\n }\n\n /**\n * @throws ContactApiException\n * @throws CrmException\n */\n public function getContactById(string $crmId, array $fields): array\n {\n try {\n $contact = $this->getNewInstance()->crm()->contacts()->basicApi()->getById(\n $crmId,\n implode(',', $fields)\n );\n } catch (ContactApiException $e) {\n $this->log->info('[Hubspot] Failed to fetch contact', [\n 'crm_id' => $crmId,\n 'reason' => $e->getMessage(),\n ]);\n\n throw $e;\n }\n\n if (! $contact instanceof ContactsWithAssociations) {\n throw new CrmException('Contact not found');\n }\n\n return [\n 'id' => $contact->getId(),\n 'properties' => $contact->getProperties(),\n ];\n }\n\n /**\n * This is email search request that Hubspot offers as GET (more generous quota)\n */\n public function getContactByEmail(string $email, array $fields = []): array\n {\n try {\n $contact = $this->getNewInstance()->crm()->contacts()->basicApi()->getById(\n $email,\n implode(',', $fields),\n null,\n false,\n 'email'\n );\n\n return [\n 'id' => $contact->getId(),\n 'properties' => $contact->getProperties(),\n ];\n } catch (ContactApiException $e) {\n $this->log->info('[Hubspot] Failed to fetch contact', [\n 'email' => $email,\n 'reason' => $e->getMessage(),\n ]);\n\n return [];\n }\n }\n\n /**\n * @throws CrmException\n */\n public function fetchProperty(string $objectType, string $propertyId): Property\n {\n $result = $this->getNewInstance()->crm()->properties()->coreApi()->getByName($objectType, $propertyId);\n\n if (! $result instanceof Property) {\n $this->log->error('[Hubspot] Failed to fetch property', [\n 'object_type' => $objectType,\n 'property_id' => $propertyId,\n 'reason' => $result->getMessage(),\n ]);\n\n throw new CrmException('Failed to fetch property');\n }\n\n return $result;\n }\n\n /**\n * @return array<CrmFieldOption>\n */\n public function fetchPropertyOptions(string $objectType, string $propertyId): array\n {\n /** @var array<CrmFieldOption> */\n return $this->fetchProperty($objectType, $propertyId)->getOptions();\n }\n\n /**\n * @return array<array{id:string, label:string, deleted:bool}>\n */\n public function fetchCallDispositions(): array\n {\n /** @var Response $response */\n $response = $this->getInstance()->engagements()->getCallDispositions();\n\n /**\n * @var array<array{\n * id:string,\n * label:string,\n * deleted: bool\n * }>\n */\n return $response->toArray();\n }\n\n /**\n * @return array<CrmFieldOption>\n */\n public function fetchOpportunityPipelineStages(): array\n {\n $stages = [];\n $apiResponse = $this->getNewInstance()->crm()->pipelines()->pipelinesApi()->getAll('deals');\n\n if ($apiResponse instanceof Error) {\n $this->log->error('[Hubspot] Failed to fetch opportunity pipelines', [\n 'reason' => $apiResponse->getMessage(),\n ]);\n\n return [];\n }\n\n foreach ($apiResponse->getResults() as $pipeline) {\n $pipelineStages = array_map(\n static function (PipelineStage $stage) {\n return [\n 'id' => $stage->getId(),\n 'label' => $stage->getLabel(),\n ];\n },\n $pipeline->getStages()\n );\n\n $stages = array_merge($stages, $pipelineStages);\n }\n\n return $stages;\n }\n\n public function fetchOpportunityPipelines(): array\n {\n $pipelines = [];\n\n try {\n $apiResponse = $this->makeRequest('/crm/v3/pipelines/deals');\n } catch (\\Exception $e) {\n $this->log->info('[Hubspot] Failed to fetch opportunity pipelines', [\n 'reason' => $e->getMessage(),\n ]);\n\n return [];\n }\n\n $response = $apiResponse->toArray();\n\n foreach ($response['results'] as $pipeline) {\n $pipelines[] = [\n 'id' => $pipeline['id'],\n 'label' => $pipeline['label'],\n ];\n }\n\n return $pipelines;\n }\n\n /**\n * @return array<CrmFieldOption>\n */\n public function fetchMeetingOutcomeFieldOptions(Field $field): array\n {\n return $field->getCrmProviderId() === 'meetingOutcome'\n ? $this->fetchMeetingOutcomeTypes()\n : $this->fetchCallActivityTypes();\n }\n\n public function fetchMeetingOutcomeTypes(): array\n {\n return $this->extractMeetingTypeOptions(\n 'https://api.hubapi.com/crm/v3/properties/meeting/hs_meeting_outcome'\n );\n }\n\n public function fetchCallActivityTypes(): array\n {\n return $this->extractMeetingTypeOptions(\n 'https://api.hubapi.com/crm/v3/properties/call/hs_activity_type'\n );\n }\n\n private function extractMeetingTypeOptions(string $endpoint): array\n {\n /** @var Response $response */\n $response = $this->getInstance()\n ->getClient()\n ->request('GET', $endpoint);\n\n /**\n * @var array<array{\n * value: string,\n * label: string,\n * displayOrder: int\n * }> $optionData\n */\n $optionData = $response->toArray()['options'] ?? [];\n\n $options = [];\n foreach ($optionData as $item) {\n $options[] = [\n 'id' => $item['value'],\n 'value' => $item['value'],\n 'label' => $item['label'],\n 'display_order' => $item['displayOrder'],\n ];\n }\n\n return $options;\n }\n\n /**\n * @return array<CrmFieldOption>\n */\n public function fetchDispositionFieldOptions(): array\n {\n $options = [];\n\n $dispositions = $this->fetchCallDispositions();\n\n foreach ($dispositions as $disposition) {\n if ($disposition['deleted'] !== false) {\n continue;\n }\n\n $option['value'] = $disposition['id'];\n $option['id'] = $disposition['id'];\n $option['label'] = $disposition['label'];\n\n $options[] = $option;\n }\n\n return $options;\n }\n\n /**\n * @return array<CrmFieldOption>\n */\n public function fetchOpportunityFieldOptions(Field $field): array\n {\n if ($field->isStageField()) {\n return $this->fetchOpportunityPipelineStages();\n }\n\n if ($field->isPipelineField()) {\n return $this->fetchOpportunityPipelines();\n }\n\n return $this->fetchPropertyOptions('deals', $field->getCrmProviderId());\n }\n\n /**\n * @throws BadRequest\n * @throws HubspotException\n */\n public function makeRequest(string $endpoint, $method = 'GET', $payload = [], ?string $queryString = null)\n {\n $endpoint = self::BASE_URL . $endpoint;\n\n if ($method === 'GET') {\n return $this->getInstance()->getClient()?->request(\n method: $method,\n endpoint: $endpoint,\n query_string: $queryString\n );\n } else {\n return $this->getInstance()->getClient()->request($method, $endpoint, [\n 'json' => ($payload),\n ]);\n }\n }\n\n /**\n * @throws BadRequest\n * @throws HubspotException\n */\n public function createMeeting(array $payload): Response\n {\n $endpoint = '/crm/v3/objects/meetings';\n\n return $this->makeRequest($endpoint, 'POST', $payload);\n }\n\n /**\n * @throws BadRequest\n * @throws HubspotException\n */\n public function updateMeeting(string $meetingId, array $payload): Response\n {\n $endpoint = '/crm/v3/objects/meetings/' . $meetingId;\n\n return $this->makeRequest($endpoint, 'PATCH', $payload);\n }\n\n /**\n * @throws \\Exception\n */\n public function createNote(\n string $body,\n string $ownerId,\n int $timestamp,\n string $objectId,\n NoteObject $noteObject\n ): ?string {\n try {\n $noteInput = new SimplePublicObjectInput([\n 'properties' => [\n 'hs_note_body' => $body,\n 'hubspot_owner_id' => $ownerId,\n 'hs_timestamp' => $timestamp,\n ],\n ]);\n\n // Create note\n $note = $this->getNewInstance()->crm()->objects()->basicApi()->create('note', $noteInput);\n\n $this->getNewInstance()->crm()->objects()->associationsApi()->create(\n 'note',\n $note->getId(),\n $this->getNoteObject($noteObject),\n $objectId,\n $this->getNoteAssociationType($noteObject),\n );\n\n return $note->getId();\n } catch (\\Exception $e) {\n $this->log->error('[Hubspot] Failed to create note', [\n 'objectId' => $objectId,\n 'noteObject' => $noteObject->getObjectType(),\n 'reason' => $e->getMessage(),\n ]);\n\n \\Sentry::captureException($e);\n }\n\n return null;\n }\n\n public function updateEngagement(string $objectId, array $engagement, array $metadata): void\n {\n $this->getInstance()->engagements()->update($objectId, $engagement, $metadata);\n }\n\n public function getEngagementData(string $engagementId): array\n {\n $engagement = $this->getInstance()->engagements()->get($engagementId);\n\n return $engagement->toArray();\n }\n\n public function createEngagement(array $engagement, array $associations, array $metadata): Response\n {\n return $this->getInstance()\n ->engagements()\n ->create($engagement, $associations, $metadata);\n }\n\n public function isUnauthorizedException(\\Exception $e): bool\n {\n // Check for specific HubSpot API exception types first\n if ($e instanceof BadRequest) {\n // BadRequest can contain 401 status codes\n return $e->getCode() === 401;\n }\n\n // Check for HTTP client exceptions with status codes\n if ($e instanceof \\GuzzleHttp\\Exception\\RequestException && $e->hasResponse()) {\n $response = $e->getResponse();\n if ($response !== null) {\n return $response->getStatusCode() === 401;\n }\n }\n\n // Check for Guzzle HTTP exceptions\n if ($e instanceof \\GuzzleHttp\\Exception\\ClientException) {\n return $e->getCode() === 401;\n }\n\n // Fallback to string matching as last resort, but be more specific\n $message = strtolower($e->getMessage());\n\n return str_contains($message, '401 unauthorized') ||\n str_contains($message, 'http 401') ||\n str_contains($message, 'status code 401') ||\n (preg_match('/\\b401\\b/', $message) && str_contains($message, 'unauthorized'));\n }\n\n /**\n * Validates and refreshes the access token if needed before API requests.\n * This ensures long-running processes don't fail due to token expiration.\n *\n * @throws SocialAccountTokenInvalidException\n */\n public function ensureValidToken(): void\n {\n if ($this->oauthAccount === null) {\n return;\n }\n\n $newToken = $this->tokenManager->ensureValidToken($this->oauthAccount);\n if ($newToken !== null) {\n $this->accessToken = $newToken;\n }\n }\n\n public function getConfig()\n {\n return $this->config;\n }\n\n // returns only active (archived=false)\n public function getOwners(): array\n {\n return $this->getNewInstance()->crm()->owners()->getAll();\n }\n\n /**\n * @param bool $archived\n *\n * @return array<Owner>|[]\n */\n public function getOwnersArchived(bool $archived = true): array\n {\n $endpoint = '/crm/v3/owners';\n $queryParams = [\n 'archived' => $archived ? 'true' : 'false',\n ];\n $queryString = http_build_query($queryParams);\n\n $owners = [];\n\n try {\n $response = $this->makeRequest(endpoint: $endpoint, queryString: $queryString);\n $responseData = $response?->toArray();\n\n foreach ($responseData['results'] as $result) {\n try {\n $owners[] = Owner::create($result);\n } catch (Throwable $e) {\n $this->log->error('[HubSpot] Failed to process owner data', [\n 'result' => $result,\n 'error' => $e->getMessage(),\n ]);\n\n continue;\n }\n }\n } catch (Throwable $e) {\n $this->log->error('HubSpot] Failed to fetch owners', [\n 'archived' => $archived,\n 'error' => $e->getMessage(),\n ]);\n\n return [];\n }\n\n return $owners;\n }\n\n public function getMeeting(string $engagementId): ObjectWithAssociations\n {\n return $this->getNewInstance()->crm()->objects()->basicApi()\n ->getById('meeting', $engagementId, null, 'contact,company,deal');\n }\n\n public function deleteEngagement(string $engagementId): void\n {\n $this->getInstance()->engagements()->delete((int) $engagementId);\n }\n\n public function getAssociationsData(array $ids, string $fromObject, string $toObject): array\n {\n $associationData = [];\n $idChunks = array_chunk($ids, self::ASSOCIATIONS_BATCH_SIZE_LIMIT);\n\n foreach ($idChunks as $idChunk) {\n try {\n $batchInput = new \\HubSpot\\Client\\Crm\\Associations\\Model\\BatchInputPublicObjectId();\n $batchInput->setInputs(array_map(function ($id) {\n $publicObjectId = new \\HubSpot\\Client\\Crm\\Associations\\Model\\PublicObjectId();\n $publicObjectId->setId($id);\n\n return $publicObjectId;\n }, $idChunk));\n\n $associatedObjectsData = $this\n ->getNewInstance()\n ->crm()\n ->associations()\n ->batchApi()\n ->read($fromObject, $toObject, $batchInput);\n\n if ($associatedObjectsData instanceof \\HubSpot\\Client\\Crm\\Associations\\Model\\BatchResponsePublicAssociationMulti) {\n foreach ($associatedObjectsData->getResults() as $association) {\n $from = $association->getFrom()->getId();\n $toAssociations = $association->getTo();\n\n if (! empty($toAssociations)) {\n $associationData[$from] = array_map(function ($item) {\n return $item->getId();\n }, $toAssociations);\n }\n }\n }\n// } catch (RateLimitException $e) {\n// throw $e;\n } catch (\\Exception $e) {\n $this->log->error('[Hubspot] Failed to fetch associations', [\n 'from_object' => $fromObject,\n 'to_object' => $toObject,\n 'reason' => $e->getMessage(),\n ]);\n }\n }\n\n return $associationData;\n }\n\n /**\n * @throws \\Exception\n */\n private function getNoteAssociationType(NoteObject $noteObject): string\n {\n return match($noteObject) {\n NoteObject::Opportunity => 'note_to_deal',\n NoteObject::Lead, NoteObject::Contact => 'note_to_contact', // or 'note_to_lead' if your portal supports it\n NoteObject::Account => 'note_to_company',\n NoteObject::Call, NoteObject::Event => throw new \\Exception('Not supported'),\n };\n }\n\n /**\n * @throws \\Exception\n */\n private function getNoteObject(NoteObject $noteObject): string\n {\n return match($noteObject) {\n NoteObject::Opportunity => 'deal',\n NoteObject::Lead, NoteObject::Contact => 'contact',\n NoteObject::Account => 'company',\n NoteObject::Call, NoteObject::Event => throw new \\Exception('Not supported'),\n };\n }\n\n public function addAssociations(string $objectType, string $associationType, array $payload): Response\n {\n $endpoint = \"/crm/v4/associations/$objectType/$associationType/batch/create\";\n\n return $this->makeRequest($endpoint, 'POST', $payload);\n }\n\n public function removeAssociations(string $objectType, string $associationType, array $payload): Response\n {\n $endpoint = \"/crm/v4/associations/$objectType/$associationType/batch/archive\";\n\n return $this->makeRequest($endpoint, 'POST', $payload);\n }\n}","depth":4,"on_screen":true,"value":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Services\\Crm\\Hubspot;\n\nuse HubSpot\\Client\\Crm\\Deals\\ApiException as DealApiException;\nuse HubSpot\\Client\\Crm\\Contacts\\ApiException as ContactApiException;\nuse HubSpot\\Client\\Crm\\Companies\\ApiException as CompanyApiException;\nuse HubSpot\\Client\\Crm\\Contacts\\Model\\SimplePublicObjectWithAssociations as ContactsWithAssociations;\nuse HubSpot\\Client\\Crm\\Companies\\Model\\SimplePublicObjectWithAssociations as CompaniesWithAssociations;\nuse HubSpot\\Client\\Crm\\Deals\\Model\\SimplePublicObjectWithAssociations as DealWithAssociations;\nuse HubSpot\\Client\\Crm\\Objects\\Model\\SimplePublicObjectInput;\nuse HubSpot\\Client\\Crm\\Objects\\Model\\SimplePublicObjectWithAssociations as ObjectWithAssociations;\nuse HubSpot\\Client\\Crm\\Pipelines\\Model\\Error;\nuse HubSpot\\Client\\Crm\\Pipelines\\Model\\PipelineStage;\nuse HubSpot\\Client\\Crm\\Properties\\Model\\Property;\nuse HubSpot\\Discovery\\Discovery;\nuse Jiminny\\Exceptions\\CrmException;\nuse Jiminny\\Exceptions\\RateLimitException;\nuse Jiminny\\Exceptions\\SocialAccountTokenInvalidException;\nuse Jiminny\\Jobs\\Crm\\NoteObject;\nuse Jiminny\\Models\\Crm\\Field;\nuse Jiminny\\Services\\Crm\\BaseClient;\nuse Jiminny\\Services\\Crm\\Hubspot\\DTO\\Response\\Owner;\nuse Jiminny\\Services\\SocialAccountService;\nuse SevenShores\\Hubspot\\Exceptions\\BadRequest;\nuse SevenShores\\Hubspot\\Exceptions\\HubspotException;\nuse SevenShores\\Hubspot\\Factory;\nuse SevenShores\\Hubspot\\Http\\Response;\nuse Jiminny\\Services\\Crm\\Hubspot\\Pagination\\HubspotPaginationService;\nuse Illuminate\\Support\\Facades\\Redis;\nuse Throwable;\n\n/**\n * @phpstan-type CrmFieldOption array{id:string, label:string, value?:string}\n */\nclass Client extends BaseClient implements HubspotClientInterface\n{\n public const string MIN_API_VERSION = '2';\n\n public const string BASE_URL = 'https://api.hubapi.com';\n\n public const int ASSOCIATIONS_BATCH_SIZE_LIMIT = 1000;\n\n private HubspotPaginationService $paginationService;\n private HubspotTokenManager $tokenManager;\n\n public function __construct(\n SocialAccountService $socialAccountService,\n HubspotPaginationService $paginationService,\n HubspotTokenManager $tokenManager\n ) {\n parent::__construct($socialAccountService);\n $this->paginationService = $paginationService;\n $this->tokenManager = $tokenManager;\n\n $this->setBaseUrl(self::BASE_URL);\n $this->setVersion(self::MIN_API_VERSION);\n }\n\n /**\n * Reacts to a rate limits (429) from HubSpot by translating it\n * into a RateLimitException carrying retry_after.\n *\n * Wrap any outbound HubSpot call (SDK or raw HTTP) like:\n *\n * $this->executeRequest(fn () => $this->getNewInstance()->crm()->...);\n *\n * @template T\n * @param callable(): T $apiCall\n * @return T\n *\n * @throws RateLimitException\n */\n private function executeRequest(callable $apiCall)\n {\n $cacheKey = $this->getRateLimitCacheKey();\n\n $cachedRetryAfter = Redis::get($cacheKey);\n if (is_string($cachedRetryAfter) && is_numeric($cachedRetryAfter)) {\n throw new RateLimitException(\n 'Hubspot rate limit (cached circuit-breaker)',\n (int) $cachedRetryAfter,\n );\n }\n\n try {\n return $apiCall();\n } catch (Throwable $e) {\n if ($this->isHubspotRateLimit($e)) {\n $retryAfter = $this->parseRetryAfter($e);\n\n Redis::setex($cacheKey, $retryAfter, (string) $retryAfter);\n\n $this->log->warning('[Hubspot] Received 429 from API', [\n 'team_id' => $this->config->team_id,\n 'config_id' => $this->config->getId(),\n 'retry_after' => $retryAfter,\n 'reason' => $e->getMessage(),\n ]);\n\n throw new RateLimitException('Hubspot returned 429', $retryAfter, $e);\n }\n\n throw $e;\n }\n }\n\n private function getRateLimitCacheKey(): string\n {\n return sprintf('hubspot:ratelimit:portal:%d', $this->config->getId());\n }\n\n public function isHubspotRateLimit(Throwable $e): bool\n {\n if ($e instanceof BadRequest\n || $e instanceof DealApiException\n || $e instanceof ContactApiException\n || $e instanceof CompanyApiException\n || $e instanceof \\GuzzleHttp\\Exception\\RequestException\n ) {\n return (int) $e->getCode() === 429;\n }\n\n return false;\n }\n\n public function parseRetryAfter(Throwable $e): int\n {\n if (method_exists($e, 'getResponseHeaders')) {\n $headers = $e->getResponseHeaders() ?: [];\n $value = $headers['Retry-After'] ?? $headers['retry-after'] ?? null;\n if (is_array($value)) {\n $value = $value[0] ?? null;\n }\n if (is_numeric($value)) {\n return (int) $value;\n }\n }\n\n $message = strtolower($e->getMessage());\n\n if (str_contains($message, 'daily')) {\n return 600;\n }\n if (str_contains($message, 'ten secondly')) {\n return 10;\n }\n if (str_contains($message, 'secondly')) {\n return 1;\n }\n\n $this->log->warning('[Hubspot] No retry-after header or known message, using default', [\n 'exception_class' => get_class($e),\n 'message' => $message,\n ]);\n\n return 10;\n }\n\n public function parseMessage(Throwable $e): string\n {\n if (! method_exists($e, 'getResponseBody')) {\n return '';\n }\n\n $body = $e->getResponseBody();\n if (is_string($body)) {\n $body = json_decode($body, true) ?? [];\n }\n\n if (! is_array($body)) {\n return '';\n }\n\n return (string) ($body['message'] ?? '');\n }\n\n public function getMinimumApiVersion(): string\n {\n return self::MIN_API_VERSION;\n }\n\n public function getInstance(): Factory\n {\n return new Factory([\n 'key' => $this->accessToken,\n 'oauth2' => true,\n 'base_url' => $this->baseUrl,\n ]);\n }\n\n public function getNewInstance(): Discovery\n {\n return \\HubSpot\\Factory::createWithAccessToken($this->accessToken);\n }\n\n /**\n * Secondly and daily limits for Hubspot API\n *\n * Product Tier: Free & Starter | Professional & Enterprise | API add-on (any tier)\n * Burst: 100/10 seconds | 150/10 seconds | 200/10 seconds\n * Daily: 250,000 | 500,000 | 1,000,000\n *\n * Official documentation states: The search endpoints are rate limited to five requests per second.\n * Since with 5 RPS were still hitting secondly rate limits we lowered it to 4\n */\n public function getPaginatedData(array $payload, string $type, int $offset = 0): array\n {\n $total = 0;\n $lastId = null;\n $rows = [];\n foreach ($this->getPaginatedDataGenerator($payload, $type, $offset, $total, $lastId) as $row) {\n $rows[] = $row;\n }\n\n return ['results' => $rows, 'total' => $total, 'last_record' => $lastId];\n }\n\n /**\n * @throws HubspotException\n * @throws SocialAccountTokenInvalidException\n * @throws BadRequest\n */\n public function getPaginatedDataGenerator(\n array $payload,\n string $type,\n int $offset = 0,\n int &$total = 0,\n ?string &$lastRecordId = null\n ): \\Generator {\n return $this->paginationService->getPaginatedDataGenerator(\n $this,\n $payload,\n $type,\n $offset,\n $total,\n $lastRecordId\n );\n }\n\n /**\n * Execute a search request against HubSpot CRM objects with rate limiting.\n *\n * @param string $objectType The object type ('deals', 'companies', 'contacts', 'calls')\n * @param array<string, mixed> $payload The search payload with filters, sorts, properties, etc.\n * @return array The search response with 'results', 'total', 'paging' keys\n * @throws RateLimitException When rate limit is hit\n * @throws HubspotException On API errors\n */\n public function search(string $objectType, array $payload): array\n {\n $endpoint = self::BASE_URL . \"/crm/v3/objects/{$objectType}/search\";\n\n return $this->executeRequest(function () use ($endpoint, $payload) {\n $response = $this->getInstance()->getClient()->request('POST', $endpoint, ['json' => $payload]);\n\n return $response->toArray();\n });\n }\n\n /**\n * @throws DealApiException\n * @throws CrmException\n */\n public function getOpportunityById(string $crmId, array $fields): array\n {\n try {\n $deal = $this->getNewInstance()->crm()->deals()->basicApi()->getById(\n $crmId,\n implode(',', $fields),\n 'companies,contacts'\n );\n } catch (DealApiException $e) {\n $this->log->info('[Hubspot] Failed to fetch opportunity', [\n 'crm_id' => $crmId,\n 'reason' => $e->getMessage(),\n ]);\n\n throw $e;\n }\n\n if (! $deal instanceof DealWithAssociations) {\n throw new CrmException('Deal not found');\n }\n\n return [\n 'id' => $deal->getId(),\n 'properties' => $deal->getProperties(),\n 'associations' => $deal->getAssociations(),\n ];\n }\n\n /**\n * Generic batch read method for HubSpot objects\n *\n * @param string $objectType The object type ('deals', 'companies', 'contacts')\n * @param array<string> $crmIds Array of HubSpot object IDs (max 100)\n * @param array<string> $fields Array of property names to fetch\n *\n * @return array<string, array> Array keyed by CRM ID with object data\n */\n private function batchReadObjects(string $objectType, array $crmIds, array $fields): array\n {\n if (empty($crmIds)) {\n return [];\n }\n\n $this->validateBatchSize($objectType, $crmIds);\n $this->ensureValidToken();\n\n try {\n $batchConfig = $this->createBatchConfiguration($objectType);\n $batchReadRequest = $this->prepareBatchRequest($batchConfig, $crmIds, $fields);\n $response = $batchConfig['api']->read($batchReadRequest);\n\n $this->validateApiResponse($response, $objectType);\n\n $results = $this->processApiResults($response);\n $this->logBatchResults($objectType, $crmIds, $results);\n\n return $results;\n } catch (\\Throwable $e) {\n $this->handleBatchError($e, $objectType, $crmIds);\n }\n }\n\n private function validateBatchSize(string $objectType, array $crmIds): void\n {\n if (count($crmIds) > 100) {\n throw new \\InvalidArgumentException(\"Batch size cannot exceed 100 {$objectType}\");\n }\n }\n\n private function createBatchConfiguration(string $objectType): array\n {\n $configurations = [\n 'deals' => [\n 'batchReadRequest' => new \\HubSpot\\Client\\Crm\\Deals\\Model\\BatchReadInputSimplePublicObjectId(),\n 'inputClass' => \\HubSpot\\Client\\Crm\\Deals\\Model\\SimplePublicObjectId::class,\n 'api' => $this->getNewInstance()->crm()->deals()->batchApi(),\n ],\n 'companies' => [\n 'batchReadRequest' => new \\HubSpot\\Client\\Crm\\Companies\\Model\\BatchReadInputSimplePublicObjectId(),\n 'inputClass' => \\HubSpot\\Client\\Crm\\Companies\\Model\\SimplePublicObjectId::class,\n 'api' => $this->getNewInstance()->crm()->companies()->batchApi(),\n ],\n 'contacts' => [\n 'batchReadRequest' => new \\HubSpot\\Client\\Crm\\Contacts\\Model\\BatchReadInputSimplePublicObjectId(),\n 'inputClass' => \\HubSpot\\Client\\Crm\\Contacts\\Model\\SimplePublicObjectId::class,\n 'api' => $this->getNewInstance()->crm()->contacts()->batchApi(),\n ],\n ];\n\n if (! isset($configurations[$objectType])) {\n throw new \\InvalidArgumentException(\"Unsupported object type: {$objectType}\");\n }\n\n return $configurations[$objectType];\n }\n\n private function prepareBatchRequest(array $batchConfig, array $crmIds, array $fields): object\n {\n $batchReadRequest = $batchConfig['batchReadRequest'];\n $inputClass = $batchConfig['inputClass'];\n\n $inputs = array_map(function ($crmId) use ($inputClass) {\n $input = new $inputClass();\n $input->setId($crmId);\n\n return $input;\n }, $crmIds);\n\n $batchReadRequest->setInputs($inputs);\n $batchReadRequest->setProperties($fields);\n\n return $batchReadRequest;\n }\n\n private function validateApiResponse($response, string $objectType): void\n {\n if (! $response) {\n throw new CrmException(\"HubSpot API returned null response for {$objectType} batch read\");\n }\n }\n\n private function processApiResults($response): array\n {\n $results = [];\n $responseResults = $response->getResults();\n\n if ($responseResults) {\n foreach ($responseResults as $object) {\n if ($object && $object->getId()) {\n $results[$object->getId()] = [\n 'id' => $object->getId(),\n 'properties' => $object->getProperties() ?: [],\n ];\n }\n }\n }\n\n return $results;\n }\n\n private function logBatchResults(string $objectType, array $crmIds, array $results): void\n {\n $this->log->info(\"[HubSpot] Batch fetched {$objectType}\", [\n 'requested_count' => count($crmIds),\n 'returned_count' => count($results),\n 'crm_ids' => $crmIds,\n ]);\n }\n\n private function handleBatchError(\\Throwable $e, string $objectType, array $crmIds): void\n {\n $errorMessage = $e->getMessage() ?: 'Unknown error';\n $errorTrace = $e->getTraceAsString() ?: 'No trace available';\n\n $this->log->error(\"[HubSpot] Failed to batch fetch {$objectType}\", [\n 'crm_ids' => $crmIds,\n 'error' => $errorMessage,\n 'trace' => $errorTrace,\n ]);\n\n throw new CrmException(\"Failed to batch fetch {$objectType}: \" . $errorMessage);\n }\n\n /**\n * Batch read multiple opportunities by their CRM IDs\n *\n * @param array<string> $crmIds Array of HubSpot deal IDs (max 100)\n * @param array<string> $fields Array of property names to fetch\n *\n * @return array<string, array> Array keyed by CRM ID with opportunity data\n */\n public function getOpportunitiesByIds(array $crmIds, array $fields): array\n {\n return $this->batchReadObjects('deals', $crmIds, $fields);\n }\n\n /**\n * Batch read multiple companies by their CRM IDs\n *\n * @param array<string> $crmIds Array of HubSpot company IDs (max 100)\n * @param array<string> $fields Array of property names to fetch\n *\n * @return array<string, array> Array keyed by CRM ID with company data\n */\n public function getCompaniesByIds(array $crmIds, array $fields): array\n {\n return $this->batchReadObjects('companies', $crmIds, $fields);\n }\n\n /**\n * Batch read multiple contacts by their CRM IDs\n *\n * @param array<string> $crmIds Array of HubSpot contact IDs (max 100)\n * @param array<string> $fields Array of property names to fetch\n *\n * @return array<string, array> Array keyed by CRM ID with contact data\n */\n public function getContactsByIds(array $crmIds, array $fields): array\n {\n return $this->batchReadObjects('contacts', $crmIds, $fields);\n }\n\n /**\n * @throws CompanyApiException\n * @throws CrmException\n */\n public function getAccountById(string $crmId, array $fields): array\n {\n try {\n $company = $this->getNewInstance()->crm()->companies()->basicApi()->getById(\n $crmId,\n implode(',', $fields),\n );\n } catch (CompanyApiException $e) {\n $this->log->info('[Hubspot] Failed to fetch account', [\n 'crm_id' => $crmId,\n 'reason' => $e->getMessage(),\n ]);\n\n throw $e;\n }\n\n if (! $company instanceof CompaniesWithAssociations) {\n throw new CrmException('Account not found');\n }\n\n return [\n 'id' => $company->getId(),\n 'properties' => $company->getProperties(),\n ];\n }\n\n /**\n * @throws ContactApiException\n * @throws CrmException\n */\n public function getContactById(string $crmId, array $fields): array\n {\n try {\n $contact = $this->getNewInstance()->crm()->contacts()->basicApi()->getById(\n $crmId,\n implode(',', $fields)\n );\n } catch (ContactApiException $e) {\n $this->log->info('[Hubspot] Failed to fetch contact', [\n 'crm_id' => $crmId,\n 'reason' => $e->getMessage(),\n ]);\n\n throw $e;\n }\n\n if (! $contact instanceof ContactsWithAssociations) {\n throw new CrmException('Contact not found');\n }\n\n return [\n 'id' => $contact->getId(),\n 'properties' => $contact->getProperties(),\n ];\n }\n\n /**\n * This is email search request that Hubspot offers as GET (more generous quota)\n */\n public function getContactByEmail(string $email, array $fields = []): array\n {\n try {\n $contact = $this->getNewInstance()->crm()->contacts()->basicApi()->getById(\n $email,\n implode(',', $fields),\n null,\n false,\n 'email'\n );\n\n return [\n 'id' => $contact->getId(),\n 'properties' => $contact->getProperties(),\n ];\n } catch (ContactApiException $e) {\n $this->log->info('[Hubspot] Failed to fetch contact', [\n 'email' => $email,\n 'reason' => $e->getMessage(),\n ]);\n\n return [];\n }\n }\n\n /**\n * @throws CrmException\n */\n public function fetchProperty(string $objectType, string $propertyId): Property\n {\n $result = $this->getNewInstance()->crm()->properties()->coreApi()->getByName($objectType, $propertyId);\n\n if (! $result instanceof Property) {\n $this->log->error('[Hubspot] Failed to fetch property', [\n 'object_type' => $objectType,\n 'property_id' => $propertyId,\n 'reason' => $result->getMessage(),\n ]);\n\n throw new CrmException('Failed to fetch property');\n }\n\n return $result;\n }\n\n /**\n * @return array<CrmFieldOption>\n */\n public function fetchPropertyOptions(string $objectType, string $propertyId): array\n {\n /** @var array<CrmFieldOption> */\n return $this->fetchProperty($objectType, $propertyId)->getOptions();\n }\n\n /**\n * @return array<array{id:string, label:string, deleted:bool}>\n */\n public function fetchCallDispositions(): array\n {\n /** @var Response $response */\n $response = $this->getInstance()->engagements()->getCallDispositions();\n\n /**\n * @var array<array{\n * id:string,\n * label:string,\n * deleted: bool\n * }>\n */\n return $response->toArray();\n }\n\n /**\n * @return array<CrmFieldOption>\n */\n public function fetchOpportunityPipelineStages(): array\n {\n $stages = [];\n $apiResponse = $this->getNewInstance()->crm()->pipelines()->pipelinesApi()->getAll('deals');\n\n if ($apiResponse instanceof Error) {\n $this->log->error('[Hubspot] Failed to fetch opportunity pipelines', [\n 'reason' => $apiResponse->getMessage(),\n ]);\n\n return [];\n }\n\n foreach ($apiResponse->getResults() as $pipeline) {\n $pipelineStages = array_map(\n static function (PipelineStage $stage) {\n return [\n 'id' => $stage->getId(),\n 'label' => $stage->getLabel(),\n ];\n },\n $pipeline->getStages()\n );\n\n $stages = array_merge($stages, $pipelineStages);\n }\n\n return $stages;\n }\n\n public function fetchOpportunityPipelines(): array\n {\n $pipelines = [];\n\n try {\n $apiResponse = $this->makeRequest('/crm/v3/pipelines/deals');\n } catch (\\Exception $e) {\n $this->log->info('[Hubspot] Failed to fetch opportunity pipelines', [\n 'reason' => $e->getMessage(),\n ]);\n\n return [];\n }\n\n $response = $apiResponse->toArray();\n\n foreach ($response['results'] as $pipeline) {\n $pipelines[] = [\n 'id' => $pipeline['id'],\n 'label' => $pipeline['label'],\n ];\n }\n\n return $pipelines;\n }\n\n /**\n * @return array<CrmFieldOption>\n */\n public function fetchMeetingOutcomeFieldOptions(Field $field): array\n {\n return $field->getCrmProviderId() === 'meetingOutcome'\n ? $this->fetchMeetingOutcomeTypes()\n : $this->fetchCallActivityTypes();\n }\n\n public function fetchMeetingOutcomeTypes(): array\n {\n return $this->extractMeetingTypeOptions(\n 'https://api.hubapi.com/crm/v3/properties/meeting/hs_meeting_outcome'\n );\n }\n\n public function fetchCallActivityTypes(): array\n {\n return $this->extractMeetingTypeOptions(\n 'https://api.hubapi.com/crm/v3/properties/call/hs_activity_type'\n );\n }\n\n private function extractMeetingTypeOptions(string $endpoint): array\n {\n /** @var Response $response */\n $response = $this->getInstance()\n ->getClient()\n ->request('GET', $endpoint);\n\n /**\n * @var array<array{\n * value: string,\n * label: string,\n * displayOrder: int\n * }> $optionData\n */\n $optionData = $response->toArray()['options'] ?? [];\n\n $options = [];\n foreach ($optionData as $item) {\n $options[] = [\n 'id' => $item['value'],\n 'value' => $item['value'],\n 'label' => $item['label'],\n 'display_order' => $item['displayOrder'],\n ];\n }\n\n return $options;\n }\n\n /**\n * @return array<CrmFieldOption>\n */\n public function fetchDispositionFieldOptions(): array\n {\n $options = [];\n\n $dispositions = $this->fetchCallDispositions();\n\n foreach ($dispositions as $disposition) {\n if ($disposition['deleted'] !== false) {\n continue;\n }\n\n $option['value'] = $disposition['id'];\n $option['id'] = $disposition['id'];\n $option['label'] = $disposition['label'];\n\n $options[] = $option;\n }\n\n return $options;\n }\n\n /**\n * @return array<CrmFieldOption>\n */\n public function fetchOpportunityFieldOptions(Field $field): array\n {\n if ($field->isStageField()) {\n return $this->fetchOpportunityPipelineStages();\n }\n\n if ($field->isPipelineField()) {\n return $this->fetchOpportunityPipelines();\n }\n\n return $this->fetchPropertyOptions('deals', $field->getCrmProviderId());\n }\n\n /**\n * @throws BadRequest\n * @throws HubspotException\n */\n public function makeRequest(string $endpoint, $method = 'GET', $payload = [], ?string $queryString = null)\n {\n $endpoint = self::BASE_URL . $endpoint;\n\n if ($method === 'GET') {\n return $this->getInstance()->getClient()?->request(\n method: $method,\n endpoint: $endpoint,\n query_string: $queryString\n );\n } else {\n return $this->getInstance()->getClient()->request($method, $endpoint, [\n 'json' => ($payload),\n ]);\n }\n }\n\n /**\n * @throws BadRequest\n * @throws HubspotException\n */\n public function createMeeting(array $payload): Response\n {\n $endpoint = '/crm/v3/objects/meetings';\n\n return $this->makeRequest($endpoint, 'POST', $payload);\n }\n\n /**\n * @throws BadRequest\n * @throws HubspotException\n */\n public function updateMeeting(string $meetingId, array $payload): Response\n {\n $endpoint = '/crm/v3/objects/meetings/' . $meetingId;\n\n return $this->makeRequest($endpoint, 'PATCH', $payload);\n }\n\n /**\n * @throws \\Exception\n */\n public function createNote(\n string $body,\n string $ownerId,\n int $timestamp,\n string $objectId,\n NoteObject $noteObject\n ): ?string {\n try {\n $noteInput = new SimplePublicObjectInput([\n 'properties' => [\n 'hs_note_body' => $body,\n 'hubspot_owner_id' => $ownerId,\n 'hs_timestamp' => $timestamp,\n ],\n ]);\n\n // Create note\n $note = $this->getNewInstance()->crm()->objects()->basicApi()->create('note', $noteInput);\n\n $this->getNewInstance()->crm()->objects()->associationsApi()->create(\n 'note',\n $note->getId(),\n $this->getNoteObject($noteObject),\n $objectId,\n $this->getNoteAssociationType($noteObject),\n );\n\n return $note->getId();\n } catch (\\Exception $e) {\n $this->log->error('[Hubspot] Failed to create note', [\n 'objectId' => $objectId,\n 'noteObject' => $noteObject->getObjectType(),\n 'reason' => $e->getMessage(),\n ]);\n\n \\Sentry::captureException($e);\n }\n\n return null;\n }\n\n public function updateEngagement(string $objectId, array $engagement, array $metadata): void\n {\n $this->getInstance()->engagements()->update($objectId, $engagement, $metadata);\n }\n\n public function getEngagementData(string $engagementId): array\n {\n $engagement = $this->getInstance()->engagements()->get($engagementId);\n\n return $engagement->toArray();\n }\n\n public function createEngagement(array $engagement, array $associations, array $metadata): Response\n {\n return $this->getInstance()\n ->engagements()\n ->create($engagement, $associations, $metadata);\n }\n\n public function isUnauthorizedException(\\Exception $e): bool\n {\n // Check for specific HubSpot API exception types first\n if ($e instanceof BadRequest) {\n // BadRequest can contain 401 status codes\n return $e->getCode() === 401;\n }\n\n // Check for HTTP client exceptions with status codes\n if ($e instanceof \\GuzzleHttp\\Exception\\RequestException && $e->hasResponse()) {\n $response = $e->getResponse();\n if ($response !== null) {\n return $response->getStatusCode() === 401;\n }\n }\n\n // Check for Guzzle HTTP exceptions\n if ($e instanceof \\GuzzleHttp\\Exception\\ClientException) {\n return $e->getCode() === 401;\n }\n\n // Fallback to string matching as last resort, but be more specific\n $message = strtolower($e->getMessage());\n\n return str_contains($message, '401 unauthorized') ||\n str_contains($message, 'http 401') ||\n str_contains($message, 'status code 401') ||\n (preg_match('/\\b401\\b/', $message) && str_contains($message, 'unauthorized'));\n }\n\n /**\n * Validates and refreshes the access token if needed before API requests.\n * This ensures long-running processes don't fail due to token expiration.\n *\n * @throws SocialAccountTokenInvalidException\n */\n public function ensureValidToken(): void\n {\n if ($this->oauthAccount === null) {\n return;\n }\n\n $newToken = $this->tokenManager->ensureValidToken($this->oauthAccount);\n if ($newToken !== null) {\n $this->accessToken = $newToken;\n }\n }\n\n public function getConfig()\n {\n return $this->config;\n }\n\n // returns only active (archived=false)\n public function getOwners(): array\n {\n return $this->getNewInstance()->crm()->owners()->getAll();\n }\n\n /**\n * @param bool $archived\n *\n * @return array<Owner>|[]\n */\n public function getOwnersArchived(bool $archived = true): array\n {\n $endpoint = '/crm/v3/owners';\n $queryParams = [\n 'archived' => $archived ? 'true' : 'false',\n ];\n $queryString = http_build_query($queryParams);\n\n $owners = [];\n\n try {\n $response = $this->makeRequest(endpoint: $endpoint, queryString: $queryString);\n $responseData = $response?->toArray();\n\n foreach ($responseData['results'] as $result) {\n try {\n $owners[] = Owner::create($result);\n } catch (Throwable $e) {\n $this->log->error('[HubSpot] Failed to process owner data', [\n 'result' => $result,\n 'error' => $e->getMessage(),\n ]);\n\n continue;\n }\n }\n } catch (Throwable $e) {\n $this->log->error('HubSpot] Failed to fetch owners', [\n 'archived' => $archived,\n 'error' => $e->getMessage(),\n ]);\n\n return [];\n }\n\n return $owners;\n }\n\n public function getMeeting(string $engagementId): ObjectWithAssociations\n {\n return $this->getNewInstance()->crm()->objects()->basicApi()\n ->getById('meeting', $engagementId, null, 'contact,company,deal');\n }\n\n public function deleteEngagement(string $engagementId): void\n {\n $this->getInstance()->engagements()->delete((int) $engagementId);\n }\n\n public function getAssociationsData(array $ids, string $fromObject, string $toObject): array\n {\n $associationData = [];\n $idChunks = array_chunk($ids, self::ASSOCIATIONS_BATCH_SIZE_LIMIT);\n\n foreach ($idChunks as $idChunk) {\n try {\n $batchInput = new \\HubSpot\\Client\\Crm\\Associations\\Model\\BatchInputPublicObjectId();\n $batchInput->setInputs(array_map(function ($id) {\n $publicObjectId = new \\HubSpot\\Client\\Crm\\Associations\\Model\\PublicObjectId();\n $publicObjectId->setId($id);\n\n return $publicObjectId;\n }, $idChunk));\n\n $associatedObjectsData = $this\n ->getNewInstance()\n ->crm()\n ->associations()\n ->batchApi()\n ->read($fromObject, $toObject, $batchInput);\n\n if ($associatedObjectsData instanceof \\HubSpot\\Client\\Crm\\Associations\\Model\\BatchResponsePublicAssociationMulti) {\n foreach ($associatedObjectsData->getResults() as $association) {\n $from = $association->getFrom()->getId();\n $toAssociations = $association->getTo();\n\n if (! empty($toAssociations)) {\n $associationData[$from] = array_map(function ($item) {\n return $item->getId();\n }, $toAssociations);\n }\n }\n }\n// } catch (RateLimitException $e) {\n// throw $e;\n } catch (\\Exception $e) {\n $this->log->error('[Hubspot] Failed to fetch associations', [\n 'from_object' => $fromObject,\n 'to_object' => $toObject,\n 'reason' => $e->getMessage(),\n ]);\n }\n }\n\n return $associationData;\n }\n\n /**\n * @throws \\Exception\n */\n private function getNoteAssociationType(NoteObject $noteObject): string\n {\n return match($noteObject) {\n NoteObject::Opportunity => 'note_to_deal',\n NoteObject::Lead, NoteObject::Contact => 'note_to_contact', // or 'note_to_lead' if your portal supports it\n NoteObject::Account => 'note_to_company',\n NoteObject::Call, NoteObject::Event => throw new \\Exception('Not supported'),\n };\n }\n\n /**\n * @throws \\Exception\n */\n private function getNoteObject(NoteObject $noteObject): string\n {\n return match($noteObject) {\n NoteObject::Opportunity => 'deal',\n NoteObject::Lead, NoteObject::Contact => 'contact',\n NoteObject::Account => 'company',\n NoteObject::Call, NoteObject::Event => throw new \\Exception('Not supported'),\n };\n }\n\n public function addAssociations(string $objectType, string $associationType, array $payload): Response\n {\n $endpoint = \"/crm/v4/associations/$objectType/$associationType/batch/create\";\n\n return $this->makeRequest($endpoint, 'POST', $payload);\n }\n\n public function removeAssociations(string $objectType, string $associationType, array $payload): Response\n {\n $endpoint = \"/crm/v4/associations/$objectType/$associationType/batch/archive\";\n\n return $this->makeRequest($endpoint, 'POST', $payload);\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Show Replace Field","depth":4,"bounds":{"left":0.5575133,"top":0.08060654,"width":0.008643617,"height":0.01915403},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Search History","depth":3,"bounds":{"left":0.57014626,"top":0.07980846,"width":0.00731383,"height":0.017557861},"on_screen":true,"role_description":"checkbox","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"429","depth":4,"bounds":{"left":0.58111703,"top":0.07980846,"width":0.077792555,"height":0.015961692},"on_screen":true,"value":"429","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"New Line","depth":3,"bounds":{"left":0.66788566,"top":0.07980846,"width":0.00731383,"height":0.017557861},"on_screen":true,"role_description":"checkbox","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Match Case","depth":3,"bounds":{"left":0.67785907,"top":0.07980846,"width":0.00731383,"height":0.017557861},"on_screen":true,"role_description":"checkbox","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Words","depth":3,"bounds":{"left":0.68650264,"top":0.07980846,"width":0.00731383,"height":0.017557861},"on_screen":true,"role_description":"checkbox","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Regex","depth":3,"bounds":{"left":0.69514626,"top":0.07980846,"width":0.00731383,"height":0.017557861},"on_screen":true,"role_description":"checkbox","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Replace History","depth":3,"bounds":{"left":0.27027926,"top":1.0,"width":0.00731383,"height":0.0},"on_screen":false,"role_description":"checkbox","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextField","text":"Replace","depth":4,"on_screen":false,"role_description":"text field","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"New Line","depth":3,"bounds":{"left":0.27027926,"top":1.0,"width":0.00731383,"height":0.0},"on_screen":false,"role_description":"checkbox","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Preserve case","depth":3,"bounds":{"left":0.27027926,"top":1.0,"width":0.00731383,"height":0.0},"on_screen":false,"role_description":"checkbox","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"0 results","depth":4,"bounds":{"left":0.7087766,"top":0.079010375,"width":0.025598405,"height":0.017557861},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Occurrence","depth":4,"bounds":{"left":0.734375,"top":0.07821229,"width":0.008643617,"height":0.01915403},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Next Occurrence","depth":4,"bounds":{"left":0.7430186,"top":0.07821229,"width":0.008643617,"height":0.01915403},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Filter Search Results","depth":4,"bounds":{"left":0.75166225,"top":0.07821229,"width":0.008643617,"height":0.01915403},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Open in Window, Multiple Cursors","depth":4,"bounds":{"left":0.7603058,"top":0.07821229,"width":0.008643617,"height":0.01915403},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
-8590836199319402022
|
5225837844252985444
|
click
|
accessibility
|
NULL
|
Project: faVsco.js, menu
JY-20725-handle-HS-search Project: faVsco.js, menu
JY-20725-handle-HS-search-rate-limit, menu
Start Listening for PHP Debug Connections
HandleHubspotRateLimitTest
Run 'HandleHubspotRateLimitTest'
Debug 'HandleHubspotRateLimitTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
2
67
3
Previous Highlighted Error
Next Highlighted Error
<?php
declare(strict_types=1);
namespace Jiminny\Services\Crm\Hubspot;
use HubSpot\Client\Crm\Deals\ApiException as DealApiException;
use HubSpot\Client\Crm\Contacts\ApiException as ContactApiException;
use HubSpot\Client\Crm\Companies\ApiException as CompanyApiException;
use HubSpot\Client\Crm\Contacts\Model\SimplePublicObjectWithAssociations as ContactsWithAssociations;
use HubSpot\Client\Crm\Companies\Model\SimplePublicObjectWithAssociations as CompaniesWithAssociations;
use HubSpot\Client\Crm\Deals\Model\SimplePublicObjectWithAssociations as DealWithAssociations;
use HubSpot\Client\Crm\Objects\Model\SimplePublicObjectInput;
use HubSpot\Client\Crm\Objects\Model\SimplePublicObjectWithAssociations as ObjectWithAssociations;
use HubSpot\Client\Crm\Pipelines\Model\Error;
use HubSpot\Client\Crm\Pipelines\Model\PipelineStage;
use HubSpot\Client\Crm\Properties\Model\Property;
use HubSpot\Discovery\Discovery;
use Jiminny\Exceptions\CrmException;
use Jiminny\Exceptions\RateLimitException;
use Jiminny\Exceptions\SocialAccountTokenInvalidException;
use Jiminny\Jobs\Crm\NoteObject;
use Jiminny\Models\Crm\Field;
use Jiminny\Services\Crm\BaseClient;
use Jiminny\Services\Crm\Hubspot\DTO\Response\Owner;
use Jiminny\Services\SocialAccountService;
use SevenShores\Hubspot\Exceptions\BadRequest;
use SevenShores\Hubspot\Exceptions\HubspotException;
use SevenShores\Hubspot\Factory;
use SevenShores\Hubspot\Http\Response;
use Jiminny\Services\Crm\Hubspot\Pagination\HubspotPaginationService;
use Illuminate\Support\Facades\Redis;
use Throwable;
/**
* @phpstan-type CrmFieldOption array{id:string, label:string, value?:string}
*/
class Client extends BaseClient implements HubspotClientInterface
{
public const string MIN_API_VERSION = '2';
public const string BASE_URL = '[URL_WITH_CREDENTIALS] T
* @param callable(): T $apiCall
* @return T
*
* @throws RateLimitException
*/
private function executeRequest(callable $apiCall)
{
$cacheKey = $this->getRateLimitCacheKey();
$cachedRetryAfter = Redis::get($cacheKey);
if (is_string($cachedRetryAfter) && is_numeric($cachedRetryAfter)) {
throw new RateLimitException(
'Hubspot rate limit (cached circuit-breaker)',
(int) $cachedRetryAfter,
);
}
try {
return $apiCall();
} catch (Throwable $e) {
if ($this->isHubspotRateLimit($e)) {
$retryAfter = $this->parseRetryAfter($e);
Redis::setex($cacheKey, $retryAfter, (string) $retryAfter);
$this->log->warning('[Hubspot] Received 429 from API', [
'team_id' => $this->config->team_id,
'config_id' => $this->config->getId(),
'retry_after' => $retryAfter,
'reason' => $e->getMessage(),
]);
throw new RateLimitException('Hubspot returned 429', $retryAfter, $e);
}
throw $e;
}
}
private function getRateLimitCacheKey(): string
{
return sprintf('hubspot:ratelimit:portal:%d', $this->config->getId());
}
public function isHubspotRateLimit(Throwable $e): bool
{
if ($e instanceof BadRequest
|| $e instanceof DealApiException
|| $e instanceof ContactApiException
|| $e instanceof CompanyApiException
|| $e instanceof \GuzzleHttp\Exception\RequestException
) {
return (int) $e->getCode() === 429;
}
return false;
}
public function parseRetryAfter(Throwable $e): int
{
if (method_exists($e, 'getResponseHeaders')) {
$headers = $e->getResponseHeaders() ?: [];
$value = $headers['Retry-After'] ?? $headers['retry-after'] ?? null;
if (is_array($value)) {
$value = $value[0] ?? null;
}
if (is_numeric($value)) {
return (int) $value;
}
}
$message = strtolower($e->getMessage());
if (str_contains($message, 'daily')) {
return 600;
}
if (str_contains($message, 'ten secondly')) {
return 10;
}
if (str_contains($message, 'secondly')) {
return 1;
}
$this->log->warning('[Hubspot] No retry-after header or known message, using default', [
'exception_class' => get_class($e),
'message' => $message,
]);
return 10;
}
public function parseMessage(Throwable $e): string
{
if (! method_exists($e, 'getResponseBody')) {
return '';
}
$body = $e->getResponseBody();
if (is_string($body)) {
$body = json_decode($body, true) ?? [];
}
if (! is_array($body)) {
return '';
}
return (string) ($body['message'] ?? '');
}
public function getMinimumApiVersion(): string
{
return self::MIN_API_VERSION;
}
public function getInstance(): Factory
{
return new Factory([
'key' => $this->accessToken,
'oauth2' => true,
'base_url' => $this->baseUrl,
]);
}
public function getNewInstance(): Discovery
{
return \HubSpot\Factory::createWithAccessToken($this->accessToken);
}
/**
* Secondly and daily limits for Hubspot API
*
* Product Tier: Free & Starter | Professional & Enterprise | API add-on (any tier)
* Burst: 100/10 seconds | 150/10 seconds | 200/10 seconds
* Daily: 250,000 | 500,000 | 1,000,000
*
* Official documentation states: The search endpoints are rate limited to five requests per second.
* Since with 5 RPS were still hitting secondly rate limits we lowered it to 4
*/
public function getPaginatedData(array $payload, string $type, int $offset = 0): array
{
$total = 0;
$lastId = null;
$rows = [];
foreach ($this->getPaginatedDataGenerator($payload, $type, $offset, $total, $lastId) as $row) {
$rows[] = $row;
}
return ['results' => $rows, 'total' => $total, 'last_record' => $lastId];
}
/**
* @throws HubspotException
* @throws SocialAccountTokenInvalidException
* @throws BadRequest
*/
public function getPaginatedDataGenerator(
array $payload,
string $type,
int $offset = 0,
int &$total = 0,
?string &$lastRecordId = null
): \Generator {
return $this->paginationService->getPaginatedDataGenerator(
$this,
$payload,
$type,
$offset,
$total,
$lastRecordId
);
}
/**
* Execute a search request against HubSpot CRM objects with rate limiting.
*
* @param string $objectType The object type ('deals', 'companies', 'contacts', 'calls')
* @param array<string, mixed> $payload The search payload with filters, sorts, properties, etc.
* @return array The search response with 'results', 'total', 'paging' keys
* @throws RateLimitException When rate limit is hit
* @throws HubspotException On API errors
*/
public function search(string $objectType, array $payload): array
{
$endpoint = self::BASE_URL . "/crm/v3/objects/{$objectType}/search";
return $this->executeRequest(function () use ($endpoint, $payload) {
$response = $this->getInstance()->getClient()->request('POST', $endpoint, ['json' => $payload]);
return $response->toArray();
});
}
/**
* @throws DealApiException
* @throws CrmException
*/
public function getOpportunityById(string $crmId, array $fields): array
{
try {
$deal = $this->getNewInstance()->crm()->deals()->basicApi()->getById(
$crmId,
implode(',', $fields),
'companies,contacts'
);
} catch (DealApiException $e) {
$this->log->info('[Hubspot] Failed to fetch opportunity', [
'crm_id' => $crmId,
'reason' => $e->getMessage(),
]);
throw $e;
}
if (! $deal instanceof DealWithAssociations) {
throw new CrmException('Deal not found');
}
return [
'id' => $deal->getId(),
'properties' => $deal->getProperties(),
'associations' => $deal->getAssociations(),
];
}
/**
* Generic batch read method for HubSpot objects
*
* @param string $objectType The object type ('deals', 'companies', 'contacts')
* @param array<string> $crmIds Array of HubSpot object IDs (max 100)
* @param array<string> $fields Array of property names to fetch
*
* @return array<string, array> Array keyed by CRM ID with object data
*/
private function batchReadObjects(string $objectType, array $crmIds, array $fields): array
{
if (empty($crmIds)) {
return [];
}
$this->validateBatchSize($objectType, $crmIds);
$this->ensureValidToken();
try {
$batchConfig = $this->createBatchConfiguration($objectType);
$batchReadRequest = $this->prepareBatchRequest($batchConfig, $crmIds, $fields);
$response = $batchConfig['api']->read($batchReadRequest);
$this->validateApiResponse($response, $objectType);
$results = $this->processApiResults($response);
$this->logBatchResults($objectType, $crmIds, $results);
return $results;
} catch (\Throwable $e) {
$this->handleBatchError($e, $objectType, $crmIds);
}
}
private function validateBatchSize(string $objectType, array $crmIds): void
{
if (count($crmIds) > 100) {
throw new \InvalidArgumentException("Batch size cannot exceed 100 {$objectType}");
}
}
private function createBatchConfiguration(string $objectType): array
{
$configurations = [
'deals' => [
'batchReadRequest' => new \HubSpot\Client\Crm\Deals\Model\BatchReadInputSimplePublicObjectId(),
'inputClass' => \HubSpot\Client\Crm\Deals\Model\SimplePublicObjectId::class,
'api' => $this->getNewInstance()->crm()->deals()->batchApi(),
],
'companies' => [
'batchReadRequest' => new \HubSpot\Client\Crm\Companies\Model\BatchReadInputSimplePublicObjectId(),
'inputClass' => \HubSpot\Client\Crm\Companies\Model\SimplePublicObjectId::class,
'api' => $this->getNewInstance()->crm()->companies()->batchApi(),
],
'contacts' => [
'batchReadRequest' => new \HubSpot\Client\Crm\Contacts\Model\BatchReadInputSimplePublicObjectId(),
'inputClass' => \HubSpot\Client\Crm\Contacts\Model\SimplePublicObjectId::class,
'api' => $this->getNewInstance()->crm()->contacts()->batchApi(),
],
];
if (! isset($configurations[$objectType])) {
throw new \InvalidArgumentException("Unsupported object type: {$objectType}");
}
return $configurations[$objectType];
}
private function prepareBatchRequest(array $batchConfig, array $crmIds, array $fields): object
{
$batchReadRequest = $batchConfig['batchReadRequest'];
$inputClass = $batchConfig['inputClass'];
$inputs = array_map(function ($crmId) use ($inputClass) {
$input = new $inputClass();
$input->setId($crmId);
return $input;
}, $crmIds);
$batchReadRequest->setInputs($inputs);
$batchReadRequest->setProperties($fields);
return $batchReadRequest;
}
private function validateApiResponse($response, string $objectType): void
{
if (! $response) {
throw new CrmException("HubSpot API returned null response for {$objectType} batch read");
}
}
private function processApiResults($response): array
{
$results = [];
$responseResults = $response->getResults();
if ($responseResults) {
foreach ($responseResults as $object) {
if ($object && $object->getId()) {
$results[$object->getId()] = [
'id' => $object->getId(),
'properties' => $object->getProperties() ?: [],
];
}
}
}
return $results;
}
private function logBatchResults(string $objectType, array $crmIds, array $results): void
{
$this->log->info("[HubSpot] Batch fetched {$objectType}", [
'requested_count' => count($crmIds),
'returned_count' => count($results),
'crm_ids' => $crmIds,
]);
}
private function handleBatchError(\Throwable $e, string $objectType, array $crmIds): void
{
$errorMessage = $e->getMessage() ?: 'Unknown error';
$errorTrace = $e->getTraceAsString() ?: 'No trace available';
$this->log->error("[HubSpot] Failed to batch fetch {$objectType}", [
'crm_ids' => $crmIds,
'error' => $errorMessage,
'trace' => $errorTrace,
]);
throw new CrmException("Failed to batch fetch {$objectType}: " . $errorMessage);
}
/**
* Batch read multiple opportunities by their CRM IDs
*
* @param array<string> $crmIds Array of HubSpot deal IDs (max 100)
* @param array<string> $fields Array of property names to fetch
*
* @return array<string, array> Array keyed by CRM ID with opportunity data
*/
public function getOpportunitiesByIds(array $crmIds, array $fields): array
{
return $this->batchReadObjects('deals', $crmIds, $fields);
}
/**
* Batch read multiple companies by their CRM IDs
*
* @param array<string> $crmIds Array of HubSpot company IDs (max 100)
* @param array<string> $fields Array of property names to fetch
*
* @return array<string, array> Array keyed by CRM ID with company data
*/
public function getCompaniesByIds(array $crmIds, array $fields): array
{
return $this->batchReadObjects('companies', $crmIds, $fields);
}
/**
* Batch read multiple contacts by their CRM IDs
*
* @param array<string> $crmIds Array of HubSpot contact IDs (max 100)
* @param array<string> $fields Array of property names to fetch
*
* @return array<string, array> Array keyed by CRM ID with contact data
*/
public function getContactsByIds(array $crmIds, array $fields): array
{
return $this->batchReadObjects('contacts', $crmIds, $fields);
}
/**
* @throws CompanyApiException
* @throws CrmException
*/
public function getAccountById(string $crmId, array $fields): array
{
try {
$company = $this->getNewInstance()->crm()->companies()->basicApi()->getById(
$crmId,
implode(',', $fields),
);
} catch (CompanyApiException $e) {
$this->log->info('[Hubspot] Failed to fetch account', [
'crm_id' => $crmId,
'reason' => $e->getMessage(),
]);
throw $e;
}
if (! $company instanceof CompaniesWithAssociations) {
throw new CrmException('Account not found');
}
return [
'id' => $company->getId(),
'properties' => $company->getProperties(),
];
}
/**
* @throws ContactApiException
* @throws CrmException
*/
public function getContactById(string $crmId, array $fields): array
{
try {
$contact = $this->getNewInstance()->crm()->contacts()->basicApi()->getById(
$crmId,
implode(',', $fields)
);
} catch (ContactApiException $e) {
$this->log->info('[Hubspot] Failed to fetch contact', [
'crm_id' => $crmId,
'reason' => $e->getMessage(),
]);
throw $e;
}
if (! $contact instanceof ContactsWithAssociations) {
throw new CrmException('Contact not found');
}
return [
'id' => $contact->getId(),
'properties' => $contact->getProperties(),
];
}
/**
* This is email search request that Hubspot offers as GET (more generous quota)
*/
public function getContactByEmail(string $email, array $fields = []): array
{
try {
$contact = $this->getNewInstance()->crm()->contacts()->basicApi()->getById(
$email,
implode(',', $fields),
null,
false,
'email'
);
return [
'id' => $contact->getId(),
'properties' => $contact->getProperties(),
];
} catch (ContactApiException $e) {
$this->log->info('[Hubspot] Failed to fetch contact', [
'email' => $email,
'reason' => $e->getMessage(),
]);
return [];
}
}
/**
* @throws CrmException
*/
public function fetchProperty(string $objectType, string $propertyId): Property
{
$result = $this->getNewInstance()->crm()->properties()->coreApi()->getByName($objectType, $propertyId);
if (! $result instanceof Property) {
$this->log->error('[Hubspot] Failed to fetch property', [
'object_type' => $objectType,
'property_id' => $propertyId,
'reason' => $result->getMessage(),
]);
throw new CrmException('Failed to fetch property');
}
return $result;
}
/**
* @return array<CrmFieldOption>
*/
public function fetchPropertyOptions(string $objectType, string $propertyId): array
{
/** @var array<CrmFieldOption> */
return $this->fetchProperty($objectType, $propertyId)->getOptions();
}
/**
* @return array<array{id:string, label:string, deleted:bool}>
*/
public function fetchCallDispositions(): array
{
/** @var Response $response */
$response = $this->getInstance()->engagements()->getCallDispositions();
/**
* @var array<array{
* id:string,
* label:string,
* deleted: bool
* }>
*/
return $response->toArray();
}
/**
* @return array<CrmFieldOption>
*/
public function fetchOpportunityPipelineStages(): array
{
$stages = [];
$apiResponse = $this->getNewInstance()->crm()->pipelines()->pipelinesApi()->getAll('deals');
if ($apiResponse instanceof Error) {
$this->log->error('[Hubspot] Failed to fetch opportunity pipelines', [
'reason' => $apiResponse->getMessage(),
]);
return [];
}
foreach ($apiResponse->getResults() as $pipeline) {
$pipelineStages = array_map(
static function (PipelineStage $stage) {
return [
'id' => $stage->getId(),
'label' => $stage->getLabel(),
];
},
$pipeline->getStages()
);
$stages = array_merge($stages, $pipelineStages);
}
return $stages;
}
public function fetchOpportunityPipelines(): array
{
$pipelines = [];
try {
$apiResponse = $this->makeRequest('/crm/v3/pipelines/deals');
} catch (\Exception $e) {
$this->log->info('[Hubspot] Failed to fetch opportunity pipelines', [
'reason' => $e->getMessage(),
]);
return [];
}
$response = $apiResponse->toArray();
foreach ($response['results'] as $pipeline) {
$pipelines[] = [
'id' => $pipeline['id'],
'label' => $pipeline['label'],
];
}
return $pipelines;
}
/**
* @return array<CrmFieldOption>
*/
public function fetchMeetingOutcomeFieldOptions(Field $field): array
{
return $field->getCrmProviderId() === 'meetingOutcome'
? $this->fetchMeetingOutcomeTypes()
: $this->fetchCallActivityTypes();
}
public function fetchMeetingOutcomeTypes(): array
{
return $this->extractMeetingTypeOptions(
'[URL_WITH_CREDENTIALS] Response $response */
$response = $this->getInstance()
->getClient()
->request('GET', $endpoint);
/**
* @var array<array{
* value: string,
* label: string,
* displayOrder: int
* }> $optionData
*/
$optionData = $response->toArray()['options'] ?? [];
$options = [];
foreach ($optionData as $item) {
$options[] = [
'id' => $item['value'],
'value' => $item['value'],
'label' => $item['label'],
'display_order' => $item['displayOrder'],
];
}
return $options;
}
/**
* @return array<CrmFieldOption>
*/
public function fetchDispositionFieldOptions(): array
{
$options = [];
$dispositions = $this->fetchCallDispositions();
foreach ($dispositions as $disposition) {
if ($disposition['deleted'] !== false) {
continue;
}
$option['value'] = $disposition['id'];
$option['id'] = $disposition['id'];
$option['label'] = $disposition['label'];
$options[] = $option;
}
return $options;
}
/**
* @return array<CrmFieldOption>
*/
public function fetchOpportunityFieldOptions(Field $field): array
{
if ($field->isStageField()) {
return $this->fetchOpportunityPipelineStages();
}
if ($field->isPipelineField()) {
return $this->fetchOpportunityPipelines();
}
return $this->fetchPropertyOptions('deals', $field->getCrmProviderId());
}
/**
* @throws BadRequest
* @throws HubspotException
*/
public function makeRequest(string $endpoint, $method = 'GET', $payload = [], ?string $queryString = null)
{
$endpoint = self::BASE_URL . $endpoint;
if ($method === 'GET') {
return $this->getInstance()->getClient()?->request(
method: $method,
endpoint: $endpoint,
query_string: $queryString
);
} else {
return $this->getInstance()->getClient()->request($method, $endpoint, [
'json' => ($payload),
]);
}
}
/**
* @throws BadRequest
* @throws HubspotException
*/
public function createMeeting(array $payload): Response
{
$endpoint = '/crm/v3/objects/meetings';
return $this->makeRequest($endpoint, 'POST', $payload);
}
/**
* @throws BadRequest
* @throws HubspotException
*/
public function updateMeeting(string $meetingId, array $payload): Response
{
$endpoint = '/crm/v3/objects/meetings/' . $meetingId;
return $this->makeRequest($endpoint, 'PATCH', $payload);
}
/**
* @throws \Exception
*/
public function createNote(
string $body,
string $ownerId,
int $timestamp,
string $objectId,
NoteObject $noteObject
): ?string {
try {
$noteInput = new SimplePublicObjectInput([
'properties' => [
'hs_note_body' => $body,
'hubspot_owner_id' => $ownerId,
'hs_timestamp' => $timestamp,
],
]);
// Create note
$note = $this->getNewInstance()->crm()->objects()->basicApi()->create('note', $noteInput);
$this->getNewInstance()->crm()->objects()->associationsApi()->create(
'note',
$note->getId(),
$this->getNoteObject($noteObject),
$objectId,
$this->getNoteAssociationType($noteObject),
);
return $note->getId();
} catch (\Exception $e) {
$this->log->error('[Hubspot] Failed to create note', [
'objectId' => $objectId,
'noteObject' => $noteObject->getObjectType(),
'reason' => $e->getMessage(),
]);
\Sentry::captureException($e);
}
return null;
}
public function updateEngagement(string $objectId, array $engagement, array $metadata): void
{
$this->getInstance()->engagements()->update($objectId, $engagement, $metadata);
}
public function getEngagementData(string $engagementId): array
{
$engagement = $this->getInstance()->engagements()->get($engagementId);
return $engagement->toArray();
}
public function createEngagement(array $engagement, array $associations, array $metadata): Response
{
return $this->getInstance()
->engagements()
->create($engagement, $associations, $metadata);
}
public function isUnauthorizedException(\Exception $e): bool
{
// Check for specific HubSpot API exception types first
if ($e instanceof BadRequest) {
// BadRequest can contain 401 status codes
return $e->getCode() === 401;
}
// Check for HTTP client exceptions with status codes
if ($e instanceof \GuzzleHttp\Exception\RequestException && $e->hasResponse()) {
$response = $e->getResponse();
if ($response !== null) {
return $response->getStatusCode() === 401;
}
}
// Check for Guzzle HTTP exceptions
if ($e instanceof \GuzzleHttp\Exception\ClientException) {
return $e->getCode() === 401;
}
// Fallback to string matching as last resort, but be more specific
$message = strtolower($e->getMessage());
return str_contains($message, '401 unauthorized') ||
str_contains($message, 'http 401') ||
str_contains($message, 'status code 401') ||
(preg_match('/\b401\b/', $message) && str_contains($message, 'unauthorized'));
}
/**
* Validates and refreshes the access token if needed before API requests.
* This ensures long-running processes don't fail due to token expiration.
*
* @throws SocialAccountTokenInvalidException
*/
public function ensureValidToken(): void
{
if ($this->oauthAccount === null) {
return;
}
$newToken = $this->tokenManager->ensureValidToken($this->oauthAccount);
if ($newToken !== null) {
$this->accessToken = $newToken;
}
}
public function getConfig()
{
return $this->config;
}
// returns only active (archived=false)
public function getOwners(): array
{
return $this->getNewInstance()->crm()->owners()->getAll();
}
/**
* @param bool $archived
*
* @return array<Owner>|[]
*/
public function getOwnersArchived(bool $archived = true): array
{
$endpoint = '/crm/v3/owners';
$queryParams = [
'archived' => $archived ? 'true' : 'false',
];
$queryString = http_build_query($queryParams);
$owners = [];
try {
$response = $this->makeRequest(endpoint: $endpoint, queryString: $queryString);
$responseData = $response?->toArray();
foreach ($responseData['results'] as $result) {
try {
$owners[] = Owner::create($result);
} catch (Throwable $e) {
$this->log->error('[HubSpot] Failed to process owner data', [
'result' => $result,
'error' => $e->getMessage(),
]);
continue;
}
}
} catch (Throwable $e) {
$this->log->error('HubSpot] Failed to fetch owners', [
'archived' => $archived,
'error' => $e->getMessage(),
]);
return [];
}
return $owners;
}
public function getMeeting(string $engagementId): ObjectWithAssociations
{
return $this->getNewInstance()->crm()->objects()->basicApi()
->getById('meeting', $engagementId, null, 'contact,company,deal');
}
public function deleteEngagement(string $engagementId): void
{
$this->getInstance()->engagements()->delete((int) $engagementId);
}
public function getAssociationsData(array $ids, string $fromObject, string $toObject): array
{
$associationData = [];
$idChunks = array_chunk($ids, self::ASSOCIATIONS_BATCH_SIZE_LIMIT);
foreach ($idChunks as $idChunk) {
try {
$batchInput = new \HubSpot\Client\Crm\Associations\Model\BatchInputPublicObjectId();
$batchInput->setInputs(array_map(function ($id) {
$publicObjectId = new \HubSpot\Client\Crm\Associations\Model\PublicObjectId();
$publicObjectId->setId($id);
return $publicObjectId;
}, $idChunk));
$associatedObjectsData = $this
->getNewInstance()
->crm()
->associations()
->batchApi()
->read($fromObject, $toObject, $batchInput);
if ($associatedObjectsData instanceof \HubSpot\Client\Crm\Associations\Model\BatchResponsePublicAssociationMulti) {
foreach ($associatedObjectsData->getResults() as $association) {
$from = $association->getFrom()->getId();
$toAssociations = $association->getTo();
if (! empty($toAssociations)) {
$associationData[$from] = array_map(function ($item) {
return $item->getId();
}, $toAssociations);
}
}
}
// } catch (RateLimitException $e) {
// throw $e;
} catch (\Exception $e) {
$this->log->error('[Hubspot] Failed to fetch associations', [
'from_object' => $fromObject,
'to_object' => $toObject,
'reason' => $e->getMessage(),
]);
}
}
return $associationData;
}
/**
* @throws \Exception
*/
private function getNoteAssociationType(NoteObject $noteObject): string
{
return match($noteObject) {
NoteObject::Opportunity => 'note_to_deal',
NoteObject::Lead, NoteObject::Contact => 'note_to_contact', // or 'note_to_lead' if your portal supports it
NoteObject::Account => 'note_to_company',
NoteObject::Call, NoteObject::Event => throw new \Exception('Not supported'),
};
}
/**
* @throws \Exception
*/
private function getNoteObject(NoteObject $noteObject): string
{
return match($noteObject) {
NoteObject::Opportunity => 'deal',
NoteObject::Lead, NoteObject::Contact => 'contact',
NoteObject::Account => 'company',
NoteObject::Call, NoteObject::Event => throw new \Exception('Not supported'),
};
}
public function addAssociations(string $objectType, string $associationType, array $payload): Response
{
$endpoint = "/crm/v4/associations/$objectType/$associationType/batch/create";
return $this->makeRequest($endpoint, 'POST', $payload);
}
public function removeAssociations(string $objectType, string $associationType, array $payload): Response
{
$endpoint = "/crm/v4/associations/$objectType/$associationType/batch/archive";
return $this->makeRequest($endpoint, 'POST', $payload);
}
}
Show Replace Field
Search History
429
New Line
Match Case
Words
Regex
Replace History
Replace
New Line
Preserve case
0 results
Previous Occurrence
Next Occurrence
Filter Search Results
Open in Window, Multiple Cursors...
|
18396
|
NULL
|
NULL
|
NULL
|
|
18399
|
794
|
11
|
2026-05-11T11:15:32.762702+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778498132762_m1.jpg...
|
PhpStorm
|
faVsco.js – laravel.log
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
iTerm2ShellEditViewSessionScriptsProfilesWindowHel iTerm2ShellEditViewSessionScriptsProfilesWindowHelpPreparation for Refi... in 45 m100% <78• Mon 11 May 14:15:32181DEV (docker)-zshDOCKERcompiledeventsroutesviews- ₴81DEV (docker)$2APP (-zsh)*3Jiminny-worker-processing-2:j1minny-worker-processing-2_00: stoppedjiminny-worker-processing-3:jiminny-worker-processing-3_00: stoppedjiminny-worker-processing-4:jiminny-worker-processing-4_00: stoppedjiminny-worker-processing-5:jiminny-worker-processing-5_00: stoppedjiminny-worker-processing-delayed: jiminny-worker-processing-delayed_00:stoppedworker-analytics:worker-analytics_00: stoppedworker-crm-update:worker-crm-update_00: stoppedworker-download:worker-download_00:stoppedworker-nudges:worker-nudges_00: stoppedworker:worker_00: stoppedworker-audio:worker-audio_00: stoppedworker-calendar:worker-calendar_00: stoppedworker-conferences:worker-conferences_00: stoppedworker-emails:worker-emails_00: stoppedjiminny-worker-processing-1:jiminny-worker-processing-1_00: stoppedworker-crm-sync:worker-crm-sync_00:stoppedworker-es-update:worker-es-update_00: stoppedartisan-schedule:artisan-schedule_00: stoppedartisan-schedule:artisan-schedule_00: startedjiminny-worker-processing-1:jiminny-worker-processing-1_00: startedjiminny-worker-processing-2: jiminny-worker-processing-2_00: startedjiminny-worker-processing-3:jiminny-worker-processing-3_00: startedjiminny-worker-processing-4:jiminny-worker-processing-4_00: startedjiminny-worker-processing-5:jiminny-worker-processing-5_00: startedjiminny-worker-processing-delayed: jiminny-worker-processing-delayed_00: startedworker:worker_00: startedworker-analytics:worker-analytics_00: startedworker-audio:worker-audio_00: startedworker-calendar:worker-calendar_00:startedworker-conferences:worker-conferences_00: startedworker-crm-sync:worker-crm-sync_00: startedworker-crm-update:worker-crm-update_00: startedworker-download:worker-download_00: startedworker-emails:worker-emails_00: startedworker-es-update:worker-es-update_00:startedworker-nudges:worker-nudges_00: startedroot@docker_lamp_1:/home/jiminny#php artisan jiminny:debugDispatching 100 MatchActivityCrmDatajobs (portal=2)Done.Watch logs and runjiminny:debug observeRateLimit to inspect cachestate.root@docker_lamp_1:/home/jiminny# ]84-zshX5screenpipe"O 8861.84ms DONE1.32ms DONE1.43ms DONE21.19ms DONE-zsh+DEV...
|
NULL
|
-1221463273304552890
|
NULL
|
click
|
ocr
|
NULL
|
iTerm2ShellEditViewSessionScriptsProfilesWindowHel iTerm2ShellEditViewSessionScriptsProfilesWindowHelpPreparation for Refi... in 45 m100% <78• Mon 11 May 14:15:32181DEV (docker)-zshDOCKERcompiledeventsroutesviews- ₴81DEV (docker)$2APP (-zsh)*3Jiminny-worker-processing-2:j1minny-worker-processing-2_00: stoppedjiminny-worker-processing-3:jiminny-worker-processing-3_00: stoppedjiminny-worker-processing-4:jiminny-worker-processing-4_00: stoppedjiminny-worker-processing-5:jiminny-worker-processing-5_00: stoppedjiminny-worker-processing-delayed: jiminny-worker-processing-delayed_00:stoppedworker-analytics:worker-analytics_00: stoppedworker-crm-update:worker-crm-update_00: stoppedworker-download:worker-download_00:stoppedworker-nudges:worker-nudges_00: stoppedworker:worker_00: stoppedworker-audio:worker-audio_00: stoppedworker-calendar:worker-calendar_00: stoppedworker-conferences:worker-conferences_00: stoppedworker-emails:worker-emails_00: stoppedjiminny-worker-processing-1:jiminny-worker-processing-1_00: stoppedworker-crm-sync:worker-crm-sync_00:stoppedworker-es-update:worker-es-update_00: stoppedartisan-schedule:artisan-schedule_00: stoppedartisan-schedule:artisan-schedule_00: startedjiminny-worker-processing-1:jiminny-worker-processing-1_00: startedjiminny-worker-processing-2: jiminny-worker-processing-2_00: startedjiminny-worker-processing-3:jiminny-worker-processing-3_00: startedjiminny-worker-processing-4:jiminny-worker-processing-4_00: startedjiminny-worker-processing-5:jiminny-worker-processing-5_00: startedjiminny-worker-processing-delayed: jiminny-worker-processing-delayed_00: startedworker:worker_00: startedworker-analytics:worker-analytics_00: startedworker-audio:worker-audio_00: startedworker-calendar:worker-calendar_00:startedworker-conferences:worker-conferences_00: startedworker-crm-sync:worker-crm-sync_00: startedworker-crm-update:worker-crm-update_00: startedworker-download:worker-download_00: startedworker-emails:worker-emails_00: startedworker-es-update:worker-es-update_00:startedworker-nudges:worker-nudges_00: startedroot@docker_lamp_1:/home/jiminny#php artisan jiminny:debugDispatching 100 MatchActivityCrmDatajobs (portal=2)Done.Watch logs and runjiminny:debug observeRateLimit to inspect cachestate.root@docker_lamp_1:/home/jiminny# ]84-zshX5screenpipe"O 8861.84ms DONE1.32ms DONE1.43ms DONE21.19ms DONE-zsh+DEV...
|
18397
|
NULL
|
NULL
|
NULL
|
|
18400
|
795
|
17
|
2026-05-11T11:15:32.762632+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778498132762_m2.jpg...
|
PhpStorm
|
faVsco.js – laravel.log
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
PhostormVIewINavicareCodeLaravelKeractorWindowFV f PhostormVIewINavicareCodeLaravelKeractorWindowFV faVsco.js?9 JY-20725-handle-HS-search-rate-limitProiect•.gitignoreT SyncCrmEntitiesTrait.phpC) CachedCrmServiceDecorator.onge audio.wav© HandleHub= nuospor-lournal-poll.log© RateLimitException.php© PaginationConfia.phdonounit.xmiis ttt.isclass Cllent extends Baseclient 1mpLements HubspotclientintertaceE oauth-private.keyE oauth-public.kev= storageE supervisord.pid121122123text-relav.isontests125FeatureIntearation• m Servicesv 7UnitActions130m ComnonentM ConficurationConsoleM ContractsD DomainMntoD EnumsD EventsD Exceptions137© EmailActivityImportExcC HandlerT est.php© RateLimitExceptionTes0 fixturesa GuardsD HelpersahiteIntearationsa InteractionsM.Jobs> ActivitvM AiAutomation>M Audiol• M AutomatedRenortsc) CreateResultsTect.ilC) RequestGenerateA.C) RequestGenerateR,© SendReportExpiring© SendReportJobTes@& SendReportMailJobe CondDonartNatGonMelondarMemmTacts naccod. 12 (todav 12:02nubu1etunction 1shubspotrateuimithrowable se: 00011 $e instanceof \GuzzleHttp\Exception\RequestExceptionreturn (int) $e->getCode === 429:recurn talsepubunc function parseRetrvAfter(Throwable Se: 1nt1f method existsSe.qetResponseheaders'?Sheaders = $e->getResponseHeaders() ?: []:svalue = Sheadens|"Retrv-Aften' ? Sheadens"retrv-aften' ? nul..if (is arnav(Svalue)) {Svaluel0l 22 null.if (is_numeric($value)) 1return (int) $valve;Smessage = strtolower(Se->getMessageO):if (str_contains(Smessage, 'daily')) {recurn o00.if (str_ contains(Smessaqe, 'ten secondly')) {recurn 101if (str_ contains(Smessaqe, 'secondly')) {return 1Sthis->loa->warnina('[Hubspotl No retry-after header or known message, usina default'. [l'exception_class' => get_class($e),public function parseMessage(Throwable $e): string• HubSpot/Service.php© ProviderkateLimiter.png2/67 V3 A1111131151 111=134140100% C4• Mon 11 May 14:15:32A SF [jiminny@localhost]4 HS_local [jiminny@localhost]&console [pRODI#console (EUA console [STAGING]Cc W.*erator":"EQ"[2026-05-11 11:15:02] local.INF0: [Hubspot] Pagination completed {"team_id":2."endpoint":"https://ap15092} {"c[2026-05-11 11:15:04] local.INF0: [MatchActivitvCrmDatal Successfully2026-05-11 11:15:041 LocaL.INF0: MatchActivitvcrmbatal Startina CRM data[2026-05-11 11:15:04] Local.INFO: [ EsUpdateTarget ] Update single target {"ta,[2026-05-11 11:15:04] Local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":514436} {"6t""correlation 1d":c0d7d80d-8c37-40af-88.2026-05-11 11:15:05 LocoL TNFDA[SocialAccountService] Token retrieved {"socialAc-8C37-40af-2*[CrmOwnerResolver] Integration owner matched as CRM Owner2026-05-11 11:15:051 loco1TNF0: Prospect matchl Cache local search hit "identifien tvne"."eman")[2026-05-11 11:15:05] Local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {"identifier_type":"email", "identif:[2026-05-11 11:15:05] local.INF0: [ EsUpdateTarget ] Update single target {"target":"activities" "purpose":"searchable-observer-update" "entityId":614436} {"c[2026-05-11 11:15:05] local.INF0: [MatchActivityCrmData] Starting CRM data matching {"activity":614382,"remote_search":true, "set _configuration":2,"old_state":[2026-05-11 11:15:05] local.INF0: [ EsUpdateTarget ] Update single target {"target":"activities" "purpose":"searchable-observer-update" "entityId":614382} {"cntitutdl:41/202 HcollostjonHoull.llontivi[{"id":1002632,"user_id":null,"contact id":nunnolotion dall.1o1170200.odo9.1do6.05l[2026-05-11 11:15:05] local.INF0: [SocialAccountServicel Token retrieved {"socialAccountId":1499wnep":148, "team_id":2} {"correlatidorrelati[2026-05-11 11:15:05] local.INF0: [Prospect matchl Cache / local search hit {"identifier_ty[2026-05-11 11:15:05] local.INF0: [Prospect matchl cached emptvresult - no APT calls. try next matching method {"identifie2026-05-11 11:15:05 LocoL JNF0: Prospect matchl Resolved2026-05-11 11:15:05 LocoL JNF0: CrmActivitvServicel Emarl domain belonos to the2026-05-11 11:15:051 LocaL.TNF0:[CrmActivitvServicel CRM matchingskaboind crm Lookuo <"activitv2026-05-11 11:15:051 LocaLINF0: 1 EsUodateTaraet " Uodate sinale target «"ta43822 4"c2026-05-11 11:15:051 Local,TNF0:added to Redis Uist «"entitvivo2026-05-11 11:15:051 Local,TNF0:MatchActivitvermDatal Successfully matched CRM data "activitv":614382 "remote search":true "lead id":nul "tact id".nul[2026-05-11 11:15:06] local.INFO:2026-05-11 11•15•061 Tocol TNSD•"EslindateTarget 1 Undate single taraet {"target"."activities" "purpose":"searchable-observer-update" "entityId":614381} {"crio 4 space...
|
NULL
|
6918299741716414615
|
NULL
|
click
|
ocr
|
NULL
|
PhostormVIewINavicareCodeLaravelKeractorWindowFV f PhostormVIewINavicareCodeLaravelKeractorWindowFV faVsco.js?9 JY-20725-handle-HS-search-rate-limitProiect•.gitignoreT SyncCrmEntitiesTrait.phpC) CachedCrmServiceDecorator.onge audio.wav© HandleHub= nuospor-lournal-poll.log© RateLimitException.php© PaginationConfia.phdonounit.xmiis ttt.isclass Cllent extends Baseclient 1mpLements HubspotclientintertaceE oauth-private.keyE oauth-public.kev= storageE supervisord.pid121122123text-relav.isontests125FeatureIntearation• m Servicesv 7UnitActions130m ComnonentM ConficurationConsoleM ContractsD DomainMntoD EnumsD EventsD Exceptions137© EmailActivityImportExcC HandlerT est.php© RateLimitExceptionTes0 fixturesa GuardsD HelpersahiteIntearationsa InteractionsM.Jobs> ActivitvM AiAutomation>M Audiol• M AutomatedRenortsc) CreateResultsTect.ilC) RequestGenerateA.C) RequestGenerateR,© SendReportExpiring© SendReportJobTes@& SendReportMailJobe CondDonartNatGonMelondarMemmTacts naccod. 12 (todav 12:02nubu1etunction 1shubspotrateuimithrowable se: 00011 $e instanceof \GuzzleHttp\Exception\RequestExceptionreturn (int) $e->getCode === 429:recurn talsepubunc function parseRetrvAfter(Throwable Se: 1nt1f method existsSe.qetResponseheaders'?Sheaders = $e->getResponseHeaders() ?: []:svalue = Sheadens|"Retrv-Aften' ? Sheadens"retrv-aften' ? nul..if (is arnav(Svalue)) {Svaluel0l 22 null.if (is_numeric($value)) 1return (int) $valve;Smessage = strtolower(Se->getMessageO):if (str_contains(Smessage, 'daily')) {recurn o00.if (str_ contains(Smessaqe, 'ten secondly')) {recurn 101if (str_ contains(Smessaqe, 'secondly')) {return 1Sthis->loa->warnina('[Hubspotl No retry-after header or known message, usina default'. [l'exception_class' => get_class($e),public function parseMessage(Throwable $e): string• HubSpot/Service.php© ProviderkateLimiter.png2/67 V3 A1111131151 111=134140100% C4• Mon 11 May 14:15:32A SF [jiminny@localhost]4 HS_local [jiminny@localhost]&console [pRODI#console (EUA console [STAGING]Cc W.*erator":"EQ"[2026-05-11 11:15:02] local.INF0: [Hubspot] Pagination completed {"team_id":2."endpoint":"https://ap15092} {"c[2026-05-11 11:15:04] local.INF0: [MatchActivitvCrmDatal Successfully2026-05-11 11:15:041 LocaL.INF0: MatchActivitvcrmbatal Startina CRM data[2026-05-11 11:15:04] Local.INFO: [ EsUpdateTarget ] Update single target {"ta,[2026-05-11 11:15:04] Local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":514436} {"6t""correlation 1d":c0d7d80d-8c37-40af-88.2026-05-11 11:15:05 LocoL TNFDA[SocialAccountService] Token retrieved {"socialAc-8C37-40af-2*[CrmOwnerResolver] Integration owner matched as CRM Owner2026-05-11 11:15:051 loco1TNF0: Prospect matchl Cache local search hit "identifien tvne"."eman")[2026-05-11 11:15:05] Local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {"identifier_type":"email", "identif:[2026-05-11 11:15:05] local.INF0: [ EsUpdateTarget ] Update single target {"target":"activities" "purpose":"searchable-observer-update" "entityId":614436} {"c[2026-05-11 11:15:05] local.INF0: [MatchActivityCrmData] Starting CRM data matching {"activity":614382,"remote_search":true, "set _configuration":2,"old_state":[2026-05-11 11:15:05] local.INF0: [ EsUpdateTarget ] Update single target {"target":"activities" "purpose":"searchable-observer-update" "entityId":614382} {"cntitutdl:41/202 HcollostjonHoull.llontivi[{"id":1002632,"user_id":null,"contact id":nunnolotion dall.1o1170200.odo9.1do6.05l[2026-05-11 11:15:05] local.INF0: [SocialAccountServicel Token retrieved {"socialAccountId":1499wnep":148, "team_id":2} {"correlatidorrelati[2026-05-11 11:15:05] local.INF0: [Prospect matchl Cache / local search hit {"identifier_ty[2026-05-11 11:15:05] local.INF0: [Prospect matchl cached emptvresult - no APT calls. try next matching method {"identifie2026-05-11 11:15:05 LocoL JNF0: Prospect matchl Resolved2026-05-11 11:15:05 LocoL JNF0: CrmActivitvServicel Emarl domain belonos to the2026-05-11 11:15:051 LocaL.TNF0:[CrmActivitvServicel CRM matchingskaboind crm Lookuo <"activitv2026-05-11 11:15:051 LocaLINF0: 1 EsUodateTaraet " Uodate sinale target «"ta43822 4"c2026-05-11 11:15:051 Local,TNF0:added to Redis Uist «"entitvivo2026-05-11 11:15:051 Local,TNF0:MatchActivitvermDatal Successfully matched CRM data "activitv":614382 "remote search":true "lead id":nul "tact id".nul[2026-05-11 11:15:06] local.INFO:2026-05-11 11•15•061 Tocol TNSD•"EslindateTarget 1 Undate single taraet {"target"."activities" "purpose":"searchable-observer-update" "entityId":614381} {"crio 4 space...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
18401
|
794
|
12
|
2026-05-11T11:15:35.376958+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778498135376_m1.jpg...
|
PhpStorm
|
faVsco.js – laravel.log
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
8043719072324535154
|
-8628527368849355612
|
click
|
hybrid
|
NULL
|
Project: faVsco.js, menu
iTerm2ShellEditViewSessio Project: faVsco.js, menu
iTerm2ShellEditViewSessionScriptsProfilesWindowHelpPreparation for Refi... in 45 m100% <78• Mon 11 May 14:15:34181DEV (docker)-zshDOCKERcompiledeventsroutesviews- ₴81DEV (docker)$2APP (-zsh)*3Jiminny-worker-processing-2:j1minny-worker-processing-2_00: stoppedjiminny-worker-processing-3:jiminny-worker-processing-3_00: stoppedjiminny-worker-processing-4:jiminny-worker-processing-4_00: stoppedjiminny-worker-processing-5:jiminny-worker-processing-5_00: stoppedjiminny-worker-processing-delayed: jiminny-worker-processing-delayed_00:stoppedworker-analytics:worker-analytics_00: stoppedworker-crm-update:worker-crm-update_00: stoppedworker-download:worker-download_00:stoppedworker-nudges:worker-nudges_00: stoppedworker:worker_00: stoppedworker-audio:worker-audio_00: stoppedworker-calendar:worker-calendar_00: stoppedworker-conferences:worker-conferences_00: stoppedworker-emails:worker-emails_00: stoppedjiminny-worker-processing-1:jiminny-worker-processing-1_00: stoppedworker-crm-sync:worker-crm-sync_00:stoppedworker-es-update:worker-es-update_00: stoppedartisan-schedule:artisan-schedule_00: stoppedartisan-schedule:artisan-schedule_00: startedjiminny-worker-processing-1:jiminny-worker-processing-1_00: startedjiminny-worker-processing-2: jiminny-worker-processing-2_00: startedjiminny-worker-processing-3:jiminny-worker-processing-3_00: startedjiminny-worker-processing-4:jiminny-worker-processing-4_00: startedjiminny-worker-processing-5:jiminny-worker-processing-5_00: startedjiminny-worker-processing-delayed: jiminny-worker-processing-delayed_00: startedworker:worker_00: startedworker-analytics:worker-analytics_00: startedworker-audio:worker-audio_00: startedworker-calendar:worker-calendar_00:startedworker-conferences:worker-conferences_00: startedworker-crm-sync:worker-crm-sync_00: startedworker-crm-update:worker-crm-update_00: startedworker-download:worker-download_00: startedworker-emails:worker-emails_00: startedworker-es-update:worker-es-update_00:startedworker-nudges:worker-nudges_00: startedroot@docker_lamp_1:/home/jiminny#php artisan jiminny:debugDispatching 100 MatchActivityCrmDatajobs (portal=2)Done.Watch logs and runjiminny:debug observeRateLimit to inspect cachestate.root@docker_lamp_1:/home/jiminny# ]84-zshX5screenpipe"O 8861.84ms DONE1.32ms DONE1.43ms DONE21.19ms DONE-zsh+DEV...
|
NULL
|
NULL
|
NULL
|
NULL
|